You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A NaturalTransformation<F,G> for some Functor F and some Functor G witnesses the morphism forall a. F a -> G a. Something like the following signature that witnesses the narrowed result type should be sufficient:
There should be an obvious and easy way to construct a NaturalTransformation from some base monad to a transformed monad via a Lift<T>.
Pairing a NaturalTransformation<F,G> with a NaturalTransformation<G,F> yields a NaturalIsomorphism<F,G>.
Probably it makes sense to add a mapXXXT(NaturalTransformation<M, N> nat) method to each of the built-in transformers, although there's little prior art in the way of IterateT (since it's "ListT done right"). Current thoughts are an interface isomorphic to something like:
A
NaturalTransformation<F,G>
for someFunctor F
and someFunctor G
witnesses the morphismforall a. F a -> G a
. Something like the following signature that witnesses the narrowed result type should be sufficient:There should be an obvious and easy way to construct a
NaturalTransformation
from some base monad to a transformed monad via aLift<T>
.Pairing a
NaturalTransformation<F,G>
with aNaturalTransformation<G,F>
yields aNaturalIsomorphism<F,G>
.Probably it makes sense to add a
mapXXXT(NaturalTransformation<M, N> nat)
method to each of the built-in transformers, although there's little prior art in the way ofIterateT
(since it's "ListT
done right"). Current thoughts are an interface isomorphic to something like:The text was updated successfully, but these errors were encountered: