In the first Haskell Cast podcast Rein Henrichs and Chris Forno interviewed Edward Kmett in part about lens and it was suggested that Prisms don't have the same kind of introductory tutorial treatment. That's a shame, though. Prisms arise naturally all the time when using sum types.
I learned to use Prisms when using lens [1] with aeson so let us examine an extended use case to motivate using Prisms.
It's fairly common in dynamic languages to consume JSON like this
> it = json.loads('[{"someObject" : { "version" : [1, 0, 0] }}]')