joint-0.1.9: Trying to compose non-composable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Joint.Effects.State

Documentation

newtype State s a Source #

Constructors

State (((->) s :. (,) s) := a) 

Instances

Instances details
Monad (State s) Source # 
Instance details

Defined in Control.Joint.Effects.State

Methods

(>>=) :: State s a -> (a -> State s b) -> State s b #

(>>) :: State s a -> State s b -> State s b #

return :: a -> State s a #

Functor (State s) Source # 
Instance details

Defined in Control.Joint.Effects.State

Methods

fmap :: (a -> b) -> State s a -> State s b #

(<$) :: a -> State s b -> State s a #

Applicative (State s) Source # 
Instance details

Defined in Control.Joint.Effects.State

Methods

pure :: a -> State s a #

(<*>) :: State s (a -> b) -> State s a -> State s b #

liftA2 :: (a -> b -> c) -> State s a -> State s b -> State s c #

(*>) :: State s a -> State s b -> State s b #

(<*) :: State s a -> State s b -> State s a #

Interpreted (State s) Source # 
Instance details

Defined in Control.Joint.Effects.State

Associated Types

type Primary (State s) a Source #

Methods

run :: State s a -> Primary (State s) a Source #

Transformer (State s) Source # 
Instance details

Defined in Control.Joint.Effects.State

Methods

build :: forall (u :: Type -> Type). Applicative u => State s ~> (State s :> u) Source #

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

Completable (Writer e) (State e) Source # 
Instance details

Defined in Control.Joint.Effects.State

Methods

complete :: Writer e ~> State e Source #

Completable (Reader e) (State e) Source # 
Instance details

Defined in Control.Joint.Effects.State

Methods

complete :: Reader e ~> State e Source #

type Schema (State s) Source # 
Instance details

Defined in Control.Joint.Effects.State

type Schema (State s) = ((->) s :: Type -> Type) <:<.>:> (,) s
type Primary (State s) a Source # 
Instance details

Defined in Control.Joint.Effects.State

type Primary (State s) a = (((->) s :: Type -> Type) :. (,) s) := a

statefully :: s -> State s a -> (s, a) Source #

modify :: Stateful s t => (s -> s) -> t () Source #

current :: Stateful s t => t s Source #

replace :: Stateful s t => s -> t () Source #

Orphan instances

Completable (Writer e) (State e) Source # 
Instance details

Methods

complete :: Writer e ~> State e Source #

Completable (Reader e) (State e) Source # 
Instance details

Methods

complete :: Reader e ~> State e Source #

Monad u => Monad ((((->) s :: Type -> Type) <:<.>:> (,) s) := u) Source # 
Instance details

Methods

(>>=) :: (((->) s <:<.>:> (,) s) := u) a -> (a -> (((->) s <:<.>:> (,) s) := u) b) -> (((->) s <:<.>:> (,) s) := u) b #

(>>) :: (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) b -> (((->) s <:<.>:> (,) s) := u) b #

return :: a -> (((->) s <:<.>:> (,) s) := u) a #

Functor u => Functor ((((->) s :: Type -> Type) <:<.>:> (,) s) := u) Source # 
Instance details

Methods

fmap :: (a -> b) -> (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) b #

(<$) :: a -> (((->) s <:<.>:> (,) s) := u) b -> (((->) s <:<.>:> (,) s) := u) a #

Monad u => Applicative ((((->) s :: Type -> Type) <:<.>:> (,) s) := u) Source # 
Instance details

Methods

pure :: a -> (((->) s <:<.>:> (,) s) := u) a #

(<*>) :: (((->) s <:<.>:> (,) s) := u) (a -> b) -> (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) b #

liftA2 :: (a -> b -> c) -> (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) b -> (((->) s <:<.>:> (,) s) := u) c #

(*>) :: (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) b -> (((->) s <:<.>:> (,) s) := u) b #

(<*) :: (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) b -> (((->) s <:<.>:> (,) s) := u) a #

(Alternative u, Monad u) => Alternative ((((->) s :: Type -> Type) <:<.>:> (,) s) := u) Source # 
Instance details

Methods

empty :: (((->) s <:<.>:> (,) s) := u) a #

(<|>) :: (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) a #

some :: (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) [a] #

many :: (((->) s <:<.>:> (,) s) := u) a -> (((->) s <:<.>:> (,) s) := u) [a] #