functor-monad
Safe HaskellNone
LanguageHaskell2010

Data.Functor.Day.Extra

Synopsis

Documentation

uncurried :: forall (f :: Type -> Type) (g :: Type -> Type) (h :: Type -> Type) c. (Functor f, Functor g) => Curried f (Curried g h) c -> Curried (Day f g) h c Source #

curried :: forall (f :: Type -> Type) (g :: Type -> Type) (h :: Type -> Type) c. (Functor f, Functor g) => Curried (Day f g) h c -> Curried f (Curried g h) c Source #

unitCurried :: forall (g :: Type -> Type). Functor g => Identity ~> Curried g g Source #

Internal identity of natural transformation.

 unitCurried = toCurried elim2

composeCurried :: forall (f :: Type -> Type) (g :: Type -> Type) (h :: Type -> Type). (Functor f, Functor g, Functor h) => Day (Curried f g) (Curried g h) ~> Curried f h Source #

Internal composition of natural transformations.

 composeCurried = toCurried (applied . trans1 applied . assoc)

Conversions to Monad/Comonad transformers

dayToEnv :: forall (f :: Type -> Type) s0. Functor f => Day ((,) s0) f ~> EnvT s0 f Source #

envToDay :: forall s0 (f :: Type -> Type) x. EnvT s0 f x -> Day ((,) s0) f x Source #

curriedToReader :: forall s0 (f :: Type -> Type) x. Curried ((,) s0) f x -> ReaderT s0 f x Source #

readerToCurried :: forall (f :: Type -> Type) s0. Functor f => ReaderT s0 f ~> Curried ((,) s0) f Source #

dayToTraced :: forall (f :: Type -> Type) s1. Functor f => Day ((->) s1) f ~> TracedT s1 f Source #

tracedToDay :: forall s1 (f :: Type -> Type) x. TracedT s1 f x -> Day ((->) s1) f x Source #

curriedToWriter :: forall s1 (f :: Type -> Type) x. Curried ((->) s1) f x -> WriterT s1 f x Source #

writerToCurried :: forall (f :: Type -> Type) s1. Functor f => WriterT s1 f ~> Curried ((->) s1) f Source #