Documentation

Iso is similar but more flexible than Lens in that they have no dependency on
context. This flexibility affords a number of nice class instances that we
don't get with Lens, so these can be quite useful in combination. See isoL
for converting to Lens.

A less imprecise name for the code here might be Bijection but no one wants
to type that.

An Isomorphism or one-to-one mapping between types. These are very similar
to a Lens, but are not dependent on context, making them more flexible. The
functions also alow a Monadic context, supporting partial isomorphisms, and
other interesting functionality.