pandora-0.4.6: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Pattern.Functor.Comonad

Synopsis

Documentation

class (Monoidal (<--) source (:*:) (:*:) t, Extendable source t) => Comonad t source Source #

Let f :: (Extendable t, Extractable t) => t a -> b
Let g :: (Extendable t, Extractable t) => t a -> b
When providing a new instance, you should ensure it satisfies:
* Left identity: extend extract ≡ identity
* Right identity: extract . extend f ≡ f
* Associativity: extend f . extend g ≡ extend (f . extend g)

Instances

Instances details
Comonad Identity ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Identity

Comonad ((:*:) s) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t, Semimonoidal (<--) (:*:) (:*:) t) => Comonad (Construction t) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Transformer.Construction

Comonad (Store s) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Store

Comonad (Tagged tag) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Tagged

(Extractable_ (t :< u), Extendable ((->) :: Type -> Type -> Type) (t :< u)) => Comonad (t :< u) ((->) :: Type -> Type -> Type) Source # 
Instance details

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

type Schematic Comonad (Store s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Store

type Schematic Comonad (Store s) = (:*:) s <:<.>:> ((->) s :: Type -> Type)
type Schematic Comonad (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

type Schematic Comonad (Imprint e) = (<.:>) ((->) e :: Type -> Type)
type Schematic Comonad (Equipment e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Equipment