Module

Matryoshka.DistributiveLaw

#DistributiveLaw

type DistributiveLaw f g = forall a. f (g a) -> g (f a)

#distApplicative

#distDistributive

#distCata

#distPara

distPara :: forall t f. Corecursive t f => DistributiveLaw f (Tuple t)

#distParaT

distParaT :: forall t f w. Corecursive t f => Comonad w => DistributiveLaw f w -> DistributiveLaw f (EnvT t w)

#distZygo

distZygo :: forall f a. Functor f => Algebra f a -> DistributiveLaw f (Tuple a)

#distZygoT

distZygoT :: forall f w a. Functor f => Comonad w => Algebra f a -> DistributiveLaw f w -> DistributiveLaw f (EnvT a w)

#distHisto

distHisto :: forall f. Functor f => DistributiveLaw f (Cofree f)

#distGHisto

distGHisto :: forall f h. Functor f => Functor h => DistributiveLaw f h -> DistributiveLaw f (Cofree h)

#distAna

#distApo

distApo :: forall t f. Recursive t f => DistributiveLaw (Either t) f

#distGApo

distGApo :: forall f a. Functor f => Coalgebra f a -> DistributiveLaw (Either a) f

#distGApoT

distGApoT :: forall f m a. Functor f => Functor m => Coalgebra f a -> DistributiveLaw m f -> DistributiveLaw (ExceptT a m) f

#distFutu

distFutu :: forall f. Functor f => DistributiveLaw (Free f) f

#distGFutu

distGFutu :: forall f h. Functor f => Functor h => DistributiveLaw h f -> DistributiveLaw (Free h) f

Modules