multirec-0.6: Generic programming for families of recursive datatypes

Portabilitynon-portable
Stabilityexperimental
Maintainergenerics@haskell.org

Generics.MultiRec.Compos

Contents

Description

The compos operator, inspired by

B. Bringert and A. Ranta A pattern for almost compositional functions ICFP 2006

Synopsis

Compos

compos :: (Fam phi, HFunctor phi (PF phi)) => (forall ix. phi ix -> ix -> ix) -> phi ix -> ix -> ixSource

Normal version.

composM :: (Fam phi, HFunctor phi (PF phi), Monad m) => (forall ix. phi ix -> ix -> m ix) -> phi ix -> ix -> m ixSource

Monadic version of compos.

composA :: (Fam phi, HFunctor phi (PF phi), Applicative a) => (forall ix. phi ix -> ix -> a ix) -> phi ix -> ix -> a ixSource

Applicative version of compos.