pandora-0.2.8: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Pattern.Functor.Comonad

Synopsis

Documentation

class (Extractable t, Extendable t) => Comonad t Source #

Let f :: (Pointable t, Bindable t) => t a -> b
Let g :: (Pointable t, Bindable t) => t a -> b
When providing a new instance, you should ensure it satisfies the three laws:
* Left identity: extend extract ≡ identity
* Right identity: extract . extend f ≡ f
* Associativity: extend f . extend g ≡ extend (f . extend g)
Instances
Comonad Identity Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Identity

Comonad (Product a) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Product

Comonad (Store p) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Store

Covariant t => Comonad (Construction t) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Construction

Comonad (Equipment e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Equipment

(Extractable (t :< u), Extendable (t :< u)) => Comonad (t :< u) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Transformer.Comonadic

Comonad (Tagged tag) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Tagged

type Schematic Comonad (Imprint e) u Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

type Schematic Comonad (Imprint e) u = UT Covariant Covariant ((->) e :: Type -> Type) u
type Schematic Comonad (Store p) u Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Store

type Schematic Comonad (Store p) u = TUT Covariant Covariant Covariant ((:*:) p) ((->) p :: Type -> Type) u
type Schematic Comonad (Equipment e) u Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Equipment