joint-0.1.4: Trying to compose non-composable

Safe HaskellSafe
LanguageHaskell2010

Control.Joint.Abilities.Transformer

Documentation

class Composition t => Transformer t where Source #

Associated Types

type Schema (t :: * -> *) (u :: * -> *) = (r :: * -> *) | r -> t u Source #

Methods

embed :: Functor u => u ~> Schema t u Source #

build :: Applicative u => t ~> Schema t u Source #

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

Instances
Transformer Maybe Source # 
Instance details

Defined in Control.Joint.Effects.Maybe

Associated Types

type Schema Maybe u = (r :: Type -> Type) Source #

Transformer (Either e) Source # 
Instance details

Defined in Control.Joint.Effects.Either

Associated Types

type Schema (Either e) u = (r :: Type -> Type) Source #

Methods

embed :: Functor u => u ~> Schema (Either e) u Source #

build :: Applicative u => Either e ~> Schema (Either e) u Source #

unite :: Primary (Schema (Either e) u) a -> Schema (Either e) u a Source #

Transformer (Reader e) Source # 
Instance details

Defined in Control.Joint.Effects.Reader

Associated Types

type Schema (Reader e) u = (r :: Type -> Type) Source #

Methods

embed :: Functor u => u ~> Schema (Reader e) u Source #

build :: Applicative u => Reader e ~> Schema (Reader e) u Source #

unite :: Primary (Schema (Reader e) u) a -> Schema (Reader e) u a Source #

Transformer (State s) Source # 
Instance details

Defined in Control.Joint.Effects.State

Associated Types

type Schema (State s) u = (r :: Type -> Type) Source #

Methods

embed :: Functor u => u ~> Schema (State s) u Source #

build :: Applicative u => State s ~> Schema (State s) u Source #

unite :: Primary (Schema (State s) u) a -> Schema (State s) u a Source #

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

Constructors

T 

Fields

Instances
(Functor (Schema u (v :> (w :> (x :> (y :> z))))), Functor (Schema v (w :> (x :> (y :> z)))), Functor (Schema w (x :> (y :> z))), Functor (Schema x (y :> z)), Functor (Schema y z), Applicative z, Transformer t, Transformer u, Transformer v, Transformer w, Transformer x, Transformer z, Transformer y) => Liftable y (t :> (u :> (v :> (w :> (x :> (y :> z)))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: y a -> (t :> (u :> (v :> (w :> (x :> (y :> z)))))) a Source #

(Functor (Schema u (v :> (w :> (x :> (y :> z))))), Functor (Schema v (w :> (x :> (y :> z)))), Functor (Schema w (x :> (y :> z))), Functor (Schema x (y :> z)), Functor (Schema y z), Functor z, Transformer t, Transformer u, Transformer v, Transformer w, Transformer x, Transformer z, Transformer y) => Liftable z (t :> (u :> (v :> (w :> (x :> (y :> z)))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: z a -> (t :> (u :> (v :> (w :> (x :> (y :> z)))))) a Source #

(Functor (Schema u (v :> (w :> x))), Functor (Schema v (w :> x)), Functor (Schema w x), Functor (Schema x y), Functor (Schema w (x :> y)), Functor (Schema v (w :> (x :> y))), Functor (Schema u (v :> (w :> (x :> y)))), Functor y, Applicative y, Transformer t, Transformer u, Transformer v, Transformer w, Transformer x) => Liftable x (t :> (u :> (v :> (w :> (x :> y))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: x a -> (t :> (u :> (v :> (w :> (x :> y))))) a Source #

(Functor (Schema u (v :> (w :> x))), Functor (Schema v (w :> x)), Functor (Schema w x), Functor (Schema x y), Functor (Schema w (x :> y)), Functor (Schema v (w :> (x :> y))), Functor (Schema u (v :> (w :> (x :> y)))), Functor y, Transformer t, Transformer u, Transformer v, Transformer w, Transformer x) => Liftable y (t :> (u :> (v :> (w :> (x :> y))))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: y a -> (t :> (u :> (v :> (w :> (x :> y))))) a Source #

(Functor (Schema u (v :> (w :> x))), Functor (Schema v (w :> x)), Functor (Schema w x), Applicative x, Transformer t, Transformer u, Transformer v, Transformer w) => Liftable w (t :> (u :> (v :> (w :> x)))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: w a -> (t :> (u :> (v :> (w :> x)))) a Source #

(Functor (Schema u (v :> (w :> x))), Functor (Schema v (w :> x)), Functor (Schema w x), Functor x, Transformer t, Transformer u, Transformer v, Transformer w) => Liftable x (t :> (u :> (v :> (w :> x)))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: x a -> (t :> (u :> (v :> (w :> x)))) a Source #

(Functor (Schema u v), Functor (Schema v w), Functor (Schema u (v :> w)), Applicative v, Functor w, Transformer t, Transformer u, Transformer v) => Liftable w (t :> (u :> (v :> w))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: w a -> (t :> (u :> (v :> w))) a Source #

(Functor (Schema u v), Functor (Schema v w), Functor (Schema u (v :> w)), Applicative v, Applicative w, Transformer u, Transformer t, Transformer v) => Liftable v (t :> (u :> (v :> w))) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: v a -> (t :> (u :> (v :> w))) a Source #

(Functor (Schema u v), Functor v, Transformer u, Transformer t) => Liftable v (t :> (u :> v)) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: v a -> (t :> (u :> v)) a Source #

(Functor (Schema u v), Applicative v, Transformer u, Transformer t) => Liftable u (t :> (u :> v)) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

lift :: u a -> (t :> (u :> v)) a Source #

(Applicative u, Transformer t) => Liftable t (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

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

(Functor u, Transformer t) => Liftable u (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Liftable

Methods

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

(Transformer t, Monad (Schema t u)) => Monad (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

Methods

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

(>>) :: (t :> u) a -> (t :> u) b -> (t :> u) b #

return :: a -> (t :> u) a #

fail :: String -> (t :> u) a #

Functor (Schema t u) => Functor (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

Methods

fmap :: (a -> b) -> (t :> u) a -> (t :> u) b #

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

(Transformer t, Applicative (Schema t u)) => Applicative (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

Methods

pure :: a -> (t :> u) a #

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

liftA2 :: (a -> b -> c) -> (t :> u) a -> (t :> u) b -> (t :> u) c #

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

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

(Composition (Schema t u), Transformer t) => Composition (t :> u) Source # 
Instance details

Defined in Control.Joint.Abilities.Transformer

Associated Types

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

Methods

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

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

Defined in Control.Joint.Abilities.Transformer

type Primary (t :> u) a = Primary (Schema t u) a