License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Safe Haskell | Safe |
Language | Haskell2010 |
Documentation
data FList (fs :: [* -> *]) (a :: *) where Source #
N-ary composition of functors.
FList '[] a ~ a FList '[f, g, h] a ~ h (g (f a))
type family PlainF (fs :: [* -> *]) (a :: *) :: * Source #
Calculate the simplified type of the composition of a list of functors.
class IsFList fs where Source #
Functions for working with FList
s.
fappend :: Functor (FList gs) => FList gs (FList fs a) -> FList (fs ++ gs) a Source #
funappend :: Functor (FList gs) => FList (fs ++ gs) a -> FList gs (FList fs a) Source #
toPlainF :: FList fs a -> PlainF fs a Source #
Convert an FList
to its simplified form.
fromPlainF :: PlainF fs a -> FList fs a Source #
Create an FList
from its simplified form.
Instances
IsFList ([] :: [Type -> Type]) Source # | |
Defined in Data.Functor.Compose.List | |
IsFList (g ': gs) => IsFList (f ': (g ': gs)) Source # | |
Defined in Data.Functor.Compose.List fappend :: Functor (FList gs0) => FList gs0 (FList (f ': (g ': gs)) a) -> FList ((f ': (g ': gs)) ++ gs0) a Source # funappend :: Functor (FList gs0) => FList ((f ': (g ': gs)) ++ gs0) a -> FList gs0 (FList (f ': (g ': gs)) a) Source # toPlainF :: FList (f ': (g ': gs)) a -> PlainF (f ': (g ': gs)) a Source # fromPlainF :: PlainF (f ': (g ': gs)) a -> FList (f ': (g ': gs)) a Source # | |
IsFList (f ': ([] :: [Type -> Type])) Source # | |
Defined in Data.Functor.Compose.List fappend :: Functor (FList gs) => FList gs (FList (f ': []) a) -> FList ((f ': []) ++ gs) a Source # funappend :: Functor (FList gs) => FList ((f ': []) ++ gs) a -> FList gs (FList (f ': []) a) Source # toPlainF :: FList (f ': []) a -> PlainF (f ': []) a Source # fromPlainF :: PlainF (f ': []) a -> FList (f ': []) a Source # |