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

Pandora.Paradigm.Controlflow.Effect.Transformer.Comonadic

Documentation

class Interpreted t => Comonadic t where Source #

Methods

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

Instances

Instances details
Comonadic (Store s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Store

Methods

bring :: forall (u :: Type -> Type). Extractable u (->) => (Store s :< u) ~> Store s Source #

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

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

bring :: forall (u :: Type -> Type). Extractable u (->) => (Imprint e :< u) ~> Imprint e Source #

Comonadic (Equipment e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Equipment

Methods

bring :: forall (u :: Type -> Type). Extractable u (->) => (Equipment e :< u) ~> Equipment e Source #

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

Constructors

TC 

Fields

Instances

Instances details
Lowerable (Schematic Comonad t) => Lowerable ((:<) t) Source # 
Instance details

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

Methods

lower :: forall (u :: Type -> Type). Covariant u (->) (->) => (t :< u) ~> u Source #

Hoistable (Schematic Comonad t) => Hoistable ((:<) t :: (Type -> Type) -> Type -> Type) Source # 
Instance details

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

Methods

(/|\) :: forall (u :: Type -> Type) (v :: Type -> Type). Covariant u (->) (->) => (u ~> v) -> (t :< u) ~> (t :< v) Source #

hoist :: forall (u :: Type -> Type) (v :: Type -> Type). Covariant u (->) (->) => (u ~> v) -> (t :< u) ~> (t :< v) Source #

(Lowering t (Schematic Comonad u (v :< (w :< (x :< (y :< (z :< (f :< h))))))), Lowering u (Schematic Comonad v (w :< (x :< (y :< (z :< (f :< h)))))), Lowering v (Schematic Comonad w (x :< (y :< (z :< (f :< h))))), Lowering w (Schematic Comonad x (y :< (z :< (f :< h)))), Lowering x (Schematic Comonad y (z :< (f :< h))), Lowering y (Schematic Comonad z (f :< h)), Lowering 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.Effect.Adaptable

Methods

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

(Lowering t (Schematic Comonad u (v :< (w :< (x :< (y :< (z :< (f :< h))))))), Lowering u (Schematic Comonad v (w :< (x :< (y :< (z :< (f :< h)))))), Lowering v (Schematic Comonad w (x :< (y :< (z :< (f :< h))))), Lowering w (Schematic Comonad x (y :< (z :< (f :< h)))), Lowering x (Schematic Comonad y (z :< (f :< h))), Lowering y (Schematic Comonad z (f :< h)), Lowering z (Schematic Comonad f h), Lowering 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.Effect.Adaptable

Methods

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

(Lowering t (Schematic Comonad u (v :< (w :< (x :< (y :< (z :< f)))))), Lowering u (Schematic Comonad v (w :< (x :< (y :< (z :< f))))), Lowering v (Schematic Comonad w (x :< (y :< (z :< f)))), Lowering w (Schematic Comonad x (y :< (z :< f))), Lowering x (Schematic Comonad y (z :< f)), Lowering 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.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Lowering t (Schematic Comonad u (v :< (w :< (x :< (y :< z))))), Lowering u (Schematic Comonad v (w :< (x :< (y :< z)))), Lowering v (Schematic Comonad w (x :< (y :< z))), Lowering w (Schematic Comonad x (y :< z)), Lowering 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.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Lowering t (Schematic Comonad u (v :< (w :< (x :< y)))), Lowering u (Schematic Comonad v (w :< (x :< y))), Lowering v (Schematic Comonad w (x :< y)), Lowering 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.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Lowering t (Schematic Comonad u (v :< (w :< x))), Lowering u (Schematic Comonad v (w :< x)), Lowering 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.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Lowering t (Schematic Comonad u (v :< w)), Lowering 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.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Lowering 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.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

Lowering t u => Adaptable (t :< u :: Type -> Type) (u :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

Semimonoidal (Schematic Comonad t u) ((->) :: Type -> Type -> Type) (:*:) (:*:) => Semimonoidal (t :< u :: Type -> Type) ((->) :: Type -> Type -> Type) (:*:) (:*:) Source # 
Instance details

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

Methods

multiply_ :: forall (a :: k) (b :: k). ((t :< u) a :*: (t :< u) b) -> (t :< u) (a :*: b) Source #

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

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

Associated Types

type Primary (t :< u) a Source #

Methods

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

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

(||=) :: Interpreted u0 => (Primary (t :< u) a -> Primary u0 b) -> (t :< u) a -> u0 b Source #

(=||) :: Interpreted u0 => ((t :< u) a -> u0 b) -> Primary (t :< u) a -> Primary u0 b Source #

(<$||=) :: (Covariant j (->) (->), Interpreted u0) => (Primary (t :< u) a -> Primary u0 b) -> (j := (t :< u) a) -> j := u0 b Source #

(<$$||=) :: (Covariant j (->) (->), Covariant k (->) (->), Interpreted u0) => (Primary (t :< u) a -> Primary u0 b) -> ((j :. k) := (t :< u) a) -> (j :. k) := u0 b Source #

(<$$$||=) :: (Covariant j (->) (->), Covariant k (->) (->), Covariant l (->) (->), Interpreted u0) => (Primary (t :< u) a -> Primary u0 b) -> ((j :. (k :. l)) := (t :< u) a) -> (j :. (k :. l)) := u0 b Source #

(<$$$$||=) :: (Covariant j (->) (->), Covariant k (->) (->), Covariant l (->) (->), Covariant m (->) (->), Interpreted u0) => (Primary (t :< u) a -> Primary u0 b) -> ((j :. (k :. (l :. m))) := (t :< u) a) -> (j :. (k :. (l :. m))) := u0 b Source #

(=||$>) :: (Covariant j (->) (->), Interpreted u0) => ((t :< u) a -> u0 b) -> (j := Primary (t :< u) a) -> j := Primary u0 b Source #

(=||$$>) :: (Covariant j (->) (->), Covariant k (->) (->), Interpreted u0) => ((t :< u) a -> u0 b) -> ((j :. k) := Primary (t :< u) a) -> (j :. k) := Primary u0 b Source #

(=||$$$>) :: (Covariant j (->) (->), Covariant k (->) (->), Covariant l (->) (->), Interpreted u0) => ((t :< u) a -> u0 b) -> ((j :. (k :. l)) := Primary (t :< u) a) -> (j :. (k :. l)) := Primary u0 b Source #

(=||$$$$>) :: (Covariant j (->) (->), Covariant k (->) (->), Covariant l (->) (->), Covariant m (->) (->), Interpreted u0) => ((t :< u) a -> u0 b) -> ((j :. (k :. (l :. m))) := Primary (t :< u) a) -> (j :. (k :. (l :. m))) := Primary u0 b Source #

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

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

Methods

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

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

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

Methods

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

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

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

Methods

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

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

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

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

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

Methods

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

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

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

Methods

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

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

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

Methods

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

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

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

Methods

(<<-) :: (Covariant u0 (->) (->), Pointable u0 (->), Semimonoidal u0 (->) (:*:) (:*:)) => (a -> u0 b) -> (t :< u) a -> u0 ((t :< u) b) Source #

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

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

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