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.Profunctor.Composition.List

Description

 
Synopsis

Documentation

data PList (ps :: [* -> * -> *]) (a :: *) (b :: *) where Source #

N-ary composition of profunctors.

Constructors

Hom 

Fields

P 

Fields

  • :: { unP :: p a b
     
  •    } -> PList '[p] a b
     
PComp :: p a x -> PList (q ': qs) x b -> PList (p ': (q ': qs)) a b 
Instances
(Profunctor p, Profunctor (PList (q ': qs))) => Profunctor (PList (p ': (q ': qs))) Source # 
Instance details

Defined in Data.Profunctor.Composition.List

Methods

dimap :: (a -> b) -> (c -> d) -> PList (p ': (q ': qs)) b c -> PList (p ': (q ': qs)) a d #

lmap :: (a -> b) -> PList (p ': (q ': qs)) b c -> PList (p ': (q ': qs)) a c #

rmap :: (b -> c) -> PList (p ': (q ': qs)) a b -> PList (p ': (q ': qs)) a c #

(#.) :: Coercible c b => q0 b c -> PList (p ': (q ': qs)) a b -> PList (p ': (q ': qs)) a c #

(.#) :: Coercible b a => PList (p ': (q ': qs)) b c -> q0 a b -> PList (p ': (q ': qs)) a c #

Profunctor p => Profunctor (PList (p ': ([] :: [Type -> Type -> Type]))) Source # 
Instance details

Defined in Data.Profunctor.Composition.List

Methods

dimap :: (a -> b) -> (c -> d) -> PList (p ': []) b c -> PList (p ': []) a d #

lmap :: (a -> b) -> PList (p ': []) b c -> PList (p ': []) a c #

rmap :: (b -> c) -> PList (p ': []) a b -> PList (p ': []) a c #

(#.) :: Coercible c b => q b c -> PList (p ': []) a b -> PList (p ': []) a c #

(.#) :: Coercible b a => PList (p ': []) b c -> q a b -> PList (p ': []) a c #

Profunctor (PList ([] :: [Type -> Type -> Type])) Source # 
Instance details

Defined in Data.Profunctor.Composition.List

Methods

dimap :: (a -> b) -> (c -> d) -> PList [] b c -> PList [] a d #

lmap :: (a -> b) -> PList [] b c -> PList [] a c #

rmap :: (b -> c) -> PList [] a b -> PList [] a c #

(#.) :: Coercible c b => q b c -> PList [] a b -> PList [] a c #

(.#) :: Coercible b a => PList [] b c -> q a b -> PList [] a c #

class PAppend p where Source #

Combining and splitting nested PLists.

Methods

pappend :: Profunctor (PList q) => Procompose (PList q) (PList p) a b -> PList (p ++ q) a b Source #

punappend :: PList (p ++ q) a b -> Procompose (PList q) (PList p) a b Source #

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

Defined in Data.Profunctor.Composition.List

Methods

pappend :: Profunctor (PList q) => Procompose (PList q) (PList []) a b -> PList ([] ++ q) a b Source #

punappend :: PList ([] ++ q) a b -> Procompose (PList q) (PList []) a b Source #

(Profunctor p, PAppend (q ': qs)) => PAppend (p ': (q ': qs)) Source # 
Instance details

Defined in Data.Profunctor.Composition.List

Methods

pappend :: Profunctor (PList q0) => Procompose (PList q0) (PList (p ': (q ': qs))) a b -> PList ((p ': (q ': qs)) ++ q0) a b Source #

punappend :: PList ((p ': (q ': qs)) ++ q0) a b -> Procompose (PList q0) (PList (p ': (q ': qs))) a b Source #

Profunctor p => PAppend (p ': ([] :: [Type -> Type -> Type])) Source # 
Instance details

Defined in Data.Profunctor.Composition.List

Methods

pappend :: Profunctor (PList q) => Procompose (PList q) (PList (p ': [])) a b -> PList ((p ': []) ++ q) a b Source #

punappend :: PList ((p ': []) ++ q) a b -> Procompose (PList q) (PList (p ': [])) a b Source #