Module

Matryoshka.DistributiveLaw

Package
purescript-matryoshka
Repository
slamdata/purescript-matryoshka

#DistributiveLaw Source

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

#distApplicative Source

#distDistributive Source

#distCata Source

#distPara Source

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

#distParaT Source

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

#distZygo Source

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

#distZygoT Source

distZygoT :: forall a w f. 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 h f. Functor f => Functor h => DistributiveLaw f h -> DistributiveLaw f (Cofree h)

#distAna Source

#distApo Source

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

#distGApo Source

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

#distGApoT Source

distGApoT :: forall a m f. 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 h f. Functor f => Functor h => DistributiveLaw h f -> DistributiveLaw (Free h) f