A PackMap a b s t encodes how an s contains an
updatable sequence of a inside it. Each a in the sequence can
be updated to a b (and the s changes to a t to reflect this
change of type).
PackMap is just like a Traversal from the lens package.
PackMap has a different order of arguments to Traversal because
it typically needs to be made a Profunctor (and indeed
ProductProfunctor) in s and t. It is unclear at this point
whether we want the same Traversal laws to hold or not. Our use
cases may be much more general.
Constructors
PackMap (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t)
Instances5Profunctor, ProductProfunctor, SumProfunctor, Functor, Applicative
Profunctor (PackMap a b)Defined in opaleye-0.10.8.0 · Opaleye.Internal.PackMapProductProfunctor (PackMap a b)Defined in opaleye-0.10.8.0 · Opaleye.Internal.PackMapSumProfunctor (PackMap a b)Defined in opaleye-0.10.8.0 · Opaleye.Internal.PackMapFunctor (PackMap a b s)Defined in opaleye-0.10.8.0 · Opaleye.Internal.PackMapApplicative (PackMap a b s)Defined in opaleye-0.10.8.0 · Opaleye.Internal.PackMap