pandora-0.3.1: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Controlflow.Effect.Transformer.Monadic

Documentation

class Interpreted t => Monadic t where Source #

Methods

wrap :: Pointable u => t ~> (t :> u) Source #

Instances
Monadic Maybe Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Maybe

Methods

wrap :: Pointable u => Maybe ~> (Maybe :> u) Source #

Monadic (Conclusion e) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Conclusion

Methods

wrap :: Pointable u => Conclusion e ~> (Conclusion e :> u) Source #

Monadic (Environment e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Environment

Monoid e => Monadic (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Monadic (State s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.State

Methods

wrap :: Pointable u => State s ~> (State s :> u) Source #

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

Constructors

TM 

Fields

Instances
Liftable (Schematic Monad t) => Liftable ((:>) t) Source # 
Instance details

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

Methods

lift :: Covariant u => u ~> (t :> u) Source #

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant (t :> (u :> (v :> (w :> (x :> (y :> (z :> f))))))), Lifting t (Schematic Monad u (v :> (w :> (x :> (y :> (z :> f)))))), Lifting u (Schematic Monad v (w :> (x :> (y :> (z :> f))))), Lifting v (Schematic Monad w (x :> (y :> (z :> f)))), Lifting w (Schematic Monad x (y :> (z :> f))), Lifting x (Schematic Monad y (z :> f)), Lifting y (Schematic Monad z f), Wrappable z f) => Adaptable (z :: Type -> Type) (t :> (u :> (v :> (w :> (x :> (y :> (z :> f)))))) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant (t :> (u :> (v :> (w :> (x :> (y :> z)))))), Lifting t (Schematic Monad u (v :> (w :> (x :> (y :> z))))), Lifting u (Schematic Monad v (w :> (x :> (y :> z)))), Lifting v (Schematic Monad w (x :> (y :> z))), Lifting w (Schematic Monad x (y :> z)), Lifting x (Schematic Monad y z), Wrappable y z) => Adaptable (y :: Type -> Type) (t :> (u :> (v :> (w :> (x :> (y :> z))))) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant (t :> (u :> (v :> (w :> (x :> y))))), Lifting t (Schematic Monad u (v :> (w :> (x :> y)))), Lifting u (Schematic Monad v (w :> (x :> y))), Lifting v (Schematic Monad w (x :> y)), Lifting w (Schematic Monad x y), Wrappable x y) => Adaptable (x :: Type -> Type) (t :> (u :> (v :> (w :> (x :> y)))) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant (t :> (u :> (v :> (w :> x)))), Lifting t (Schematic Monad u (v :> (w :> x))), Lifting u (Schematic Monad v (w :> x)), Lifting v (Schematic Monad w x), Wrappable w x) => Adaptable (w :: Type -> Type) (t :> (u :> (v :> (w :> x))) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant (t :> (u :> (v :> w))), Lifting t (Schematic Monad u v), Lifting t (Schematic Monad u (v :> w)), Lifting u (Schematic Monad v w), Lifting v w) => Adaptable (w :: Type -> Type) (t :> (u :> (v :> w)) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant (t :> (u :> (v :> w))), Liftable (Schematic Monad t), Lifting t (Schematic Monad u (v :> w)), Lifting u (Schematic Monad v w), Wrappable v w) => Adaptable (v :: Type -> Type) (t :> (u :> (v :> w)) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant (t :> (u :> v)), Lifting t (Schematic Monad u v), Lifting u v) => Adaptable (v :: Type -> Type) (t :> (u :> v) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant (t :> (u :> v)), Liftable (Schematic Monad t), Traversable (Schematic Monad u v), Wrappable u v) => Adaptable (u :: Type -> Type) (t :> (u :> v) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

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

Methods

hoist :: Covariant u => (u ~> v) -> (t :> u) ~> (t :> v) Source #

(Covariant u, Covariant v, Covariant w, Covariant x, Traversable (Schematic Monad u v), Traversable (Schematic Monad u (v :> w)), Traversable (Schematic Monad v (w :> x)), Traversable (Schematic Monad u (v :> (w :> x))), Traversable (Schematic Monad w x), Hoistable ((:>) (t :> (u :> v))), Hoistable (Schematic Monad t), Hoistable (Schematic Monad u), Hoistable (Schematic Monad v), Hoistable (Schematic Monad w), Adaptable x x') => Adaptable (t :> (u :> (v :> (w :> x))) :: Type -> Type) (t :> (u :> (v :> (w :> x'))) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant u, Covariant v, Covariant w, Traversable (Schematic Monad u v), Traversable (Schematic Monad u (v :> w)), Traversable (Schematic Monad v w), Hoistable ((:>) (t :> (u :> v))), Hoistable (Schematic Monad t), Hoistable (Schematic Monad u), Hoistable (Schematic Monad v), Adaptable w w') => Adaptable (t :> (u :> (v :> w)) :: Type -> Type) (t :> (u :> (v :> w')) :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

(Covariant u, Covariant v, Traversable (Schematic Monad u v), Hoistable ((:>) (t :> u)), Hoistable (Schematic Monad t), Hoistable (Schematic Monad u), Adaptable v v') => Adaptable (t :> (u :> v) :: Type -> Type) (t :> (u :> v') :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

Defined in Pandora.Paradigm.Controlflow.Effect.Adaptable

Methods

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

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

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

Associated Types

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

Methods

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

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

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

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 Monad t u) => Bindable (t :> u) Source # 
Instance details

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

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 Monad t u) => Applicative (t :> u) Source # 
Instance details

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

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 Monad t u) => Alternative (t :> u) Source # 
Instance details

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

Methods

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

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

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

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

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 Monad t u) => Extendable (t :> u) Source # 
Instance details

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

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 #

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

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

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

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

Methods

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

(Pointable (t :> u), Bindable (t :> u)) => Monad (t :> u) Source # 
Instance details

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

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

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

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 Monad t u) => Extractable (t :> u) Source # 
Instance details

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

Methods

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

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

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

type Primary (t :> u) a = Primary (Schematic Monad t u) a