The polymorphic lenses of the form (forall x. Lens (f x) x) each
represent a distinct path into a functor f. If the functor is entirely
characterized by assigning values to these paths, then the functor is
representable.

Representable Functors

A Functorf is Representable if it is isomorphic to (x -> a)
for some x. Nearly all such functors can be represented by choosing x to be
the set of lenses that are polymorphic in the contents of the Functor,
that is to say x = Rep f is a valid choice of x for (nearly) every
RepresentableFunctor.

Note: Some sources refer to covariant representable functors as
corepresentable functors, and leave the "representable" name to
contravariant functors (those are isomorphic to (a -> x) for some x).

As the covariant case is vastly more common, and both are often referred to
as representable functors, we choose to call these functors Representable
here.