squares-0.0.1: The double category of Hask functors and profunctors

LicenseBSD-style (see the file LICENSE)
Maintainersjoerd@w3future.com
Safe HaskellSafe
LanguageHaskell2010

Data.Functor.Compose.List

Description

 
Synopsis

Documentation

data FList (fs :: [* -> *]) (a :: *) where Source #

N-ary composition of functors.

FList '[] a ~ a
FList '[f, g, h] a ~ h (g (f a))

Constructors

Id 

Fields

F 

Fields

  • :: { unF :: f a
     
  •    } -> FList '[f] a
     
FComp 

Fields

Instances
(Functor f, Functor (FList (g ': gs))) => Functor (FList (f ': (g ': gs))) Source # 
Instance details

Defined in Data.Functor.Compose.List

Methods

fmap :: (a -> b) -> FList (f ': (g ': gs)) a -> FList (f ': (g ': gs)) b #

(<$) :: a -> FList (f ': (g ': gs)) b -> FList (f ': (g ': gs)) a #

Functor f => Functor (FList (f ': ([] :: [Type -> Type]))) Source # 
Instance details

Defined in Data.Functor.Compose.List

Methods

fmap :: (a -> b) -> FList (f ': []) a -> FList (f ': []) b #

(<$) :: a -> FList (f ': []) b -> FList (f ': []) a #

Functor (FList ([] :: [Type -> Type])) Source # 
Instance details

Defined in Data.Functor.Compose.List

Methods

fmap :: (a -> b) -> FList [] a -> FList [] b #

(<$) :: a -> FList [] b -> FList [] a #

class FAppend f where Source #

Combining and splitting nested FLists.

Methods

fappend :: Functor (FList g) => FList g (FList f a) -> FList (f ++ g) a Source #

funappend :: Functor (FList g) => FList (f ++ g) a -> FList g (FList f a) Source #

Instances
FAppend ([] :: [Type -> Type]) Source # 
Instance details

Defined in Data.Functor.Compose.List

Methods

fappend :: Functor (FList g) => FList g (FList [] a) -> FList ([] ++ g) a Source #

funappend :: Functor (FList g) => FList ([] ++ g) a -> FList g (FList [] a) Source #

(Functor f, FAppend (g ': gs)) => FAppend (f ': (g ': gs)) Source # 
Instance details

Defined in Data.Functor.Compose.List

Methods

fappend :: Functor (FList g0) => FList g0 (FList (f ': (g ': gs)) a) -> FList ((f ': (g ': gs)) ++ g0) a Source #

funappend :: Functor (FList g0) => FList ((f ': (g ': gs)) ++ g0) a -> FList g0 (FList (f ': (g ': gs)) a) Source #

FAppend (f ': ([] :: [Type -> Type])) Source # 
Instance details

Defined in Data.Functor.Compose.List

Methods

fappend :: Functor (FList g) => FList g (FList (f ': []) a) -> FList ((f ': []) ++ g) a Source #

funappend :: Functor (FList g) => FList ((f ': []) ++ g) a -> FList g (FList (f ': []) a) Source #

type (~>) f g = forall a. f a -> g a Source #

Natural transformations between two functors. (Why is this still not in base??)