pandora-0.2.8: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Controlflow.Joint.Transformer.Comonadic

Documentation

class Interpreted t => Comonadic t where Source #

Methods

flick :: Covariant u => (t :< u) ~> u Source #

bring :: Extractable u => (t :< u) ~> t Source #

Instances
Monoid e => Comonadic (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

flick :: Covariant u => (Imprint e :< u) ~> u Source #

bring :: Extractable u => (Imprint e :< u) ~> Imprint e Source #

Comonadic (Store p) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Store

Methods

flick :: Covariant u => (Store p :< u) ~> u Source #

bring :: Extractable u => (Store p :< u) ~> Store p Source #

Comonadic (Equipment e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Equipment

newtype (t :< u) a infixr 3 Source #

Constructors

TC 

Fields

Instances
(Covariant (t :< (u :< (v :< (w :< (x :< (y :< (z :< (f :< h)))))))), Flickable t (Schematic Comonad u (v :< (w :< (x :< (y :< (z :< (f :< h))))))), Flickable u (Schematic Comonad v (w :< (x :< (y :< (z :< (f :< h)))))), Flickable v (Schematic Comonad w (x :< (y :< (z :< (f :< h))))), Flickable w (Schematic Comonad x (y :< (z :< (f :< h)))), Flickable x (Schematic Comonad y (z :< (f :< h))), Flickable y (Schematic Comonad z (f :< h)), Flickable z (Schematic Comonad f h), Bringable f h) => Adaptable (t :< (u :< (v :< (w :< (x :< (y :< (z :< (f :< h))))))) :: Type -> Type) (f :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< (x :< (y :< (z :< (f :< h)))))))) ~> f Source #

(Covariant (t :< (u :< (v :< (w :< (x :< (y :< (z :< (f :< h)))))))), Flickable t (Schematic Comonad u (v :< (w :< (x :< (y :< (z :< (f :< h))))))), Flickable u (Schematic Comonad v (w :< (x :< (y :< (z :< (f :< h)))))), Flickable v (Schematic Comonad w (x :< (y :< (z :< (f :< h))))), Flickable w (Schematic Comonad x (y :< (z :< (f :< h)))), Flickable x (Schematic Comonad y (z :< (f :< h))), Flickable y (Schematic Comonad z (f :< h)), Flickable z (Schematic Comonad f h), Flickable f h) => Adaptable (t :< (u :< (v :< (w :< (x :< (y :< (z :< (f :< h))))))) :: Type -> Type) (h :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< (x :< (y :< (z :< (f :< h)))))))) ~> h Source #

(Covariant (t :< (u :< (v :< (w :< (x :< (y :< (z :< f))))))), Flickable t (Schematic Comonad u (v :< (w :< (x :< (y :< (z :< f)))))), Flickable u (Schematic Comonad v (w :< (x :< (y :< (z :< f))))), Flickable v (Schematic Comonad w (x :< (y :< (z :< f)))), Flickable w (Schematic Comonad x (y :< (z :< f))), Flickable x (Schematic Comonad y (z :< f)), Flickable y (Schematic Comonad z f), Bringable z f) => Adaptable (t :< (u :< (v :< (w :< (x :< (y :< (z :< f)))))) :: Type -> Type) (z :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< (x :< (y :< (z :< f))))))) ~> z Source #

(Covariant (t :< (u :< (v :< (w :< (x :< (y :< (z :< f))))))), Flickable t (Schematic Comonad u (v :< (w :< (x :< (y :< (z :< f)))))), Flickable u (Schematic Comonad v (w :< (x :< (y :< (z :< f))))), Flickable v (Schematic Comonad w (x :< (y :< (z :< f)))), Flickable w (Schematic Comonad x (y :< (z :< f))), Flickable x (Schematic Comonad y (z :< f)), Flickable y (Schematic Comonad z f), Flickable z f) => Adaptable (t :< (u :< (v :< (w :< (x :< (y :< (z :< f)))))) :: Type -> Type) (f :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< (x :< (y :< (z :< f))))))) ~> f Source #

(Covariant (t :< (u :< (v :< (w :< (x :< (y :< z)))))), Flickable t (Schematic Comonad u (v :< (w :< (x :< (y :< z))))), Flickable u (Schematic Comonad v (w :< (x :< (y :< z)))), Flickable v (Schematic Comonad w (x :< (y :< z))), Flickable w (Schematic Comonad x (y :< z)), Flickable x (Schematic Comonad y z), Bringable y z) => Adaptable (t :< (u :< (v :< (w :< (x :< (y :< z))))) :: Type -> Type) (y :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< (x :< (y :< z)))))) ~> y Source #

(Covariant (t :< (u :< (v :< (w :< (x :< (y :< z)))))), Flickable t (Schematic Comonad u (v :< (w :< (x :< (y :< z))))), Flickable u (Schematic Comonad v (w :< (x :< (y :< z)))), Flickable v (Schematic Comonad w (x :< (y :< z))), Flickable w (Schematic Comonad x (y :< z)), Flickable x (Schematic Comonad y z), Flickable y z) => Adaptable (t :< (u :< (v :< (w :< (x :< (y :< z))))) :: Type -> Type) (z :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< (x :< (y :< z)))))) ~> z Source #

(Covariant (t :< (u :< (v :< (w :< (x :< y))))), Flickable t (Schematic Comonad u (v :< (w :< (x :< y)))), Flickable u (Schematic Comonad v (w :< (x :< y))), Flickable v (Schematic Comonad w (x :< y)), Flickable w (Schematic Comonad x y), Bringable x y) => Adaptable (t :< (u :< (v :< (w :< (x :< y)))) :: Type -> Type) (x :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< (x :< y))))) ~> x Source #

(Covariant (t :< (u :< (v :< (w :< (x :< y))))), Flickable t (Schematic Comonad u (v :< (w :< (x :< y)))), Flickable u (Schematic Comonad v (w :< (x :< y))), Flickable v (Schematic Comonad w (x :< y)), Flickable w (Schematic Comonad x y), Flickable x y) => Adaptable (t :< (u :< (v :< (w :< (x :< y)))) :: Type -> Type) (y :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< (x :< y))))) ~> y Source #

(Covariant (t :< (u :< (v :< (w :< x)))), Flickable t (Schematic Comonad u (v :< (w :< x))), Flickable u (Schematic Comonad v (w :< x)), Flickable v (Schematic Comonad w x), Bringable w x) => Adaptable (t :< (u :< (v :< (w :< x))) :: Type -> Type) (w :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< x)))) ~> w Source #

(Covariant (t :< (u :< (v :< (w :< x)))), Flickable t (Schematic Comonad u (v :< (w :< x))), Flickable u (Schematic Comonad v (w :< x)), Flickable v (Schematic Comonad w x), Flickable w x) => Adaptable (t :< (u :< (v :< (w :< x))) :: Type -> Type) (x :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< (w :< x)))) ~> x Source #

(Covariant (t :< (u :< (v :< w))), Flickable t (Schematic Comonad u v), Flickable t (Schematic Comonad u (v :< w)), Flickable u (Schematic Comonad v w), Flickable v w) => Adaptable (t :< (u :< (v :< w)) :: Type -> Type) (w :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< w))) ~> w Source #

(Covariant (t :< (u :< (v :< w))), Flickable t (Schematic Comonad u (v :< w)), Flickable u (Schematic Comonad v w), Bringable v w) => Adaptable (t :< (u :< (v :< w)) :: Type -> Type) (v :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< (v :< w))) ~> v Source #

(Covariant (t :< (u :< v)), Flickable t (Schematic Comonad u v), Flickable u v) => Adaptable (t :< (u :< v) :: Type -> Type) (v :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< v)) ~> v Source #

(Covariant (t :< (u :< v)), Flickable t (Schematic Comonad u v), Bringable u v) => Adaptable (t :< (u :< v) :: Type -> Type) (u :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< (u :< v)) ~> u Source #

(Covariant (t :< u), Bringable t u) => Adaptable (t :< u :: Type -> Type) (t :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< u) ~> t Source #

(Covariant (t :> u), Flickable t u) => Adaptable (t :< u :: Type -> Type) (u :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Joint.Adaptable

Methods

adapt :: (t :< u) ~> u Source #

Interpreted (Schematic Comonad t u) => Interpreted (t :< u) Source # 
Instance details

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

Associated Types

type Primary (t :< u) a :: Type Source #

Methods

run :: (t :< u) a -> Primary (t :< u) a Source #

Covariant (Schematic Comonad t u) => Covariant (t :< u) Source # 
Instance details

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

Methods

(<$>) :: (a -> b) -> (t :< u) a -> (t :< u) b Source #

comap :: (a -> b) -> (t :< u) a -> (t :< u) b Source #

(<$) :: a -> (t :< u) b -> (t :< u) a Source #

($>) :: (t :< u) a -> b -> (t :< u) b Source #

void :: (t :< u) a -> (t :< u) () Source #

loeb :: (t :< u) (a <-| (t :< u)) -> (t :< u) a Source #

(<&>) :: (t :< u) a -> (a -> b) -> (t :< u) b Source #

(<$$>) :: Covariant u0 => (a -> b) -> (((t :< u) :. u0) := a) -> ((t :< u) :. u0) := b Source #

(<$$$>) :: (Covariant u0, Covariant v) => (a -> b) -> (((t :< u) :. (u0 :. v)) := a) -> ((t :< u) :. (u0 :. v)) := b Source #

(<$$$$>) :: (Covariant u0, Covariant v, Covariant w) => (a -> b) -> (((t :< u) :. (u0 :. (v :. w))) := a) -> ((t :< u) :. (u0 :. (v :. w))) := b Source #

(<&&>) :: Covariant u0 => (((t :< u) :. u0) := a) -> (a -> b) -> ((t :< u) :. u0) := b Source #

(<&&&>) :: (Covariant u0, Covariant v) => (((t :< u) :. (u0 :. v)) := a) -> (a -> b) -> ((t :< u) :. (u0 :. v)) := b Source #

(<&&&&>) :: (Covariant u0, Covariant v, Covariant w) => (((t :< u) :. (u0 :. (v :. w))) := a) -> (a -> b) -> ((t :< u) :. (u0 :. (v :. w))) := b Source #

Bindable (Schematic Comonad t u) => Bindable (t :< u) Source # 
Instance details

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

Methods

(>>=) :: (t :< u) a -> (a -> (t :< u) b) -> (t :< u) b Source #

(=<<) :: (a -> (t :< u) b) -> (t :< u) a -> (t :< u) b Source #

bind :: (a -> (t :< u) b) -> (t :< u) a -> (t :< u) b Source #

join :: (((t :< u) :. (t :< u)) := a) -> (t :< u) a Source #

(>=>) :: (a -> (t :< u) b) -> (b -> (t :< u) c) -> a -> (t :< u) c Source #

(<=<) :: (b -> (t :< u) c) -> (a -> (t :< u) b) -> a -> (t :< u) c Source #

($>>=) :: Covariant u0 => (a -> (t :< u) b) -> ((u0 :. (t :< u)) := a) -> (u0 :. (t :< u)) := b Source #

(>>=$) :: ((t :< u) b -> c) -> (a -> (t :< u) b) -> (t :< u) a -> c Source #

Applicative (Schematic Comonad t u) => Applicative (t :< u) Source # 
Instance details

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

Methods

(<*>) :: (t :< u) (a -> b) -> (t :< u) a -> (t :< u) b Source #

apply :: (t :< u) (a -> b) -> (t :< u) a -> (t :< u) b Source #

(*>) :: (t :< u) a -> (t :< u) b -> (t :< u) b Source #

(<*) :: (t :< u) a -> (t :< u) b -> (t :< u) a Source #

forever :: (t :< u) a -> (t :< u) b Source #

(<**>) :: Applicative u0 => (((t :< u) :. u0) := (a -> b)) -> (((t :< u) :. u0) := a) -> ((t :< u) :. u0) := b Source #

(<***>) :: (Applicative u0, Applicative v) => (((t :< u) :. (u0 :. v)) := (a -> b)) -> (((t :< u) :. (u0 :. v)) := a) -> ((t :< u) :. (u0 :. v)) := b Source #

(<****>) :: (Applicative u0, Applicative v, Applicative w) => (((t :< u) :. (u0 :. (v :. w))) := (a -> b)) -> (((t :< u) :. (u0 :. (v :. w))) := a) -> ((t :< u) :. (u0 :. (v :. w))) := b Source #

Alternative (Schematic Comonad t u) => Alternative (t :< u) Source # 
Instance details

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

Methods

(<+>) :: (t :< u) a -> (t :< u) a -> (t :< u) a Source #

alter :: (t :< u) a -> (t :< u) a -> (t :< u) a Source #

Distributive (Schematic Comonad t u) => Distributive (t :< u) Source # 
Instance details

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

Methods

(>>-) :: Covariant u0 => u0 a -> (a -> (t :< u) b) -> ((t :< u) :. u0) := b Source #

collect :: Covariant u0 => (a -> (t :< u) b) -> u0 a -> ((t :< u) :. u0) := b Source #

distribute :: Covariant u0 => ((u0 :. (t :< u)) := a) -> ((t :< u) :. u0) := a Source #

(>>>-) :: (Covariant u0, Covariant v) => ((u0 :. v) := a) -> (a -> (t :< u) b) -> ((t :< u) :. (u0 :. v)) := b Source #

(>>>>-) :: (Covariant u0, Covariant v, Covariant w) => ((u0 :. (v :. w)) := a) -> (a -> (t :< u) b) -> ((t :< u) :. (u0 :. (v :. w))) := b Source #

(>>>>>-) :: (Covariant u0, Covariant v, Covariant w, Covariant j) => ((u0 :. (v :. (w :. j))) := a) -> (a -> (t :< u) b) -> ((t :< u) :. (u0 :. (v :. (w :. j)))) := b Source #

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

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

Methods

(=>>) :: (t :< u) a -> ((t :< u) a -> b) -> (t :< u) b Source #

(<<=) :: ((t :< u) a -> b) -> (t :< u) a -> (t :< u) b Source #

extend :: ((t :< u) a -> b) -> (t :< u) a -> (t :< u) b Source #

duplicate :: (t :< u) a -> ((t :< u) :. (t :< u)) := a Source #

(=<=) :: ((t :< u) b -> c) -> ((t :< u) a -> b) -> (t :< u) a -> c Source #

(=>=) :: ((t :< u) a -> b) -> ((t :< u) b -> c) -> (t :< u) a -> c Source #

Pointable (Schematic Comonad t u) => Pointable (t :< u) Source # 
Instance details

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

Methods

point :: a |-> (t :< u) Source #

Traversable (Schematic Comonad t u) => Traversable (t :< u) Source # 
Instance details

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

Methods

(->>) :: (Pointable u0, Applicative u0) => (t :< u) a -> (a -> u0 b) -> (u0 :. (t :< u)) := b Source #

traverse :: (Pointable u0, Applicative u0) => (a -> u0 b) -> (t :< u) a -> (u0 :. (t :< u)) := b Source #

sequence :: (Pointable u0, Applicative u0) => (((t :< u) :. u0) := a) -> (u0 :. (t :< u)) := a Source #

(->>>) :: (Pointable u0, Applicative u0, Traversable v) => ((v :. (t :< u)) := a) -> (a -> u0 b) -> (u0 :. (v :. (t :< u))) := b Source #

(->>>>) :: (Pointable u0, Applicative u0, Traversable v, Traversable w) => ((w :. (v :. (t :< u))) := a) -> (a -> u0 b) -> (u0 :. (w :. (v :. (t :< u)))) := b Source #

(->>>>>) :: (Pointable u0, Applicative u0, Traversable v, Traversable w, Traversable j) => ((j :. (w :. (v :. (t :< u)))) := a) -> (a -> u0 b) -> (u0 :. (j :. (w :. (v :. (t :< u))))) := b Source #

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

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

Methods

extract :: a <-| (t :< u) Source #

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

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

type Primary (t :< u) a Source # 
Instance details

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

type Primary (t :< u) a = Primary (Schematic Comonad t u) a