Module

Matryoshka.DistributiveLaw

Package
purescript-matryoshka
Repository
purescript-contrib/purescript-matryoshka

#DistributiveLaw Source

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

#distApplicative Source

#distDistributive Source

#distCata Source

#distPara Source

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

#distParaT Source

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

#distZygo Source

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

#distZygoT Source

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

#distHisto Source

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

#distGHisto Source

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

#distAna Source

#distApo Source

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

#distGApo Source

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

#distGApoT Source

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

#distFutu Source

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

#distGFutu Source

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