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

Control.Joint.Effects.Writer

Documentation

newtype Writer e a Source #

Constructors

Writer (e, a) 

Instances

Instances details
Monoid e => Monad (Writer e) Source # 
Instance details

Defined in Control.Joint.Effects.Writer

Methods

(>>=) :: Writer e a -> (a -> Writer e b) -> Writer e b #

(>>) :: Writer e a -> Writer e b -> Writer e b #

return :: a -> Writer e a #

Functor (Writer e) Source # 
Instance details

Defined in Control.Joint.Effects.Writer

Methods

fmap :: (a -> b) -> Writer e a -> Writer e b #

(<$) :: a -> Writer e b -> Writer e a #

Monoid e => Applicative (Writer e) Source # 
Instance details

Defined in Control.Joint.Effects.Writer

Methods

pure :: a -> Writer e a #

(<*>) :: Writer e (a -> b) -> Writer e a -> Writer e b #

liftA2 :: (a -> b -> c) -> Writer e a -> Writer e b -> Writer e c #

(*>) :: Writer e a -> Writer e b -> Writer e b #

(<*) :: Writer e a -> Writer e b -> Writer e a #

Interpreted (Writer e) Source # 
Instance details

Defined in Control.Joint.Effects.Writer

Associated Types

type Primary (Writer e) a Source #

Methods

run :: Writer e a -> Primary (Writer e) a Source #

Monoid e => Transformer (Writer e) Source # 
Instance details

Defined in Control.Joint.Effects.Writer

Methods

build :: forall (u :: Type -> Type). Applicative u => Writer e ~> (Writer e :> u) Source #

unite :: forall (u :: Type -> Type) a. Primary (Schema (Writer e) u) a -> (Writer e :> u) a Source #

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

Defined in Control.Joint.Effects.State

Methods

complete :: Writer e ~> State e Source #

type Schema (Writer e) Source # 
Instance details

Defined in Control.Joint.Effects.Writer

type Schema (Writer e) = UT ((,) e)
type Primary (Writer e) a Source # 
Instance details

Defined in Control.Joint.Effects.Writer

type Primary (Writer e) a = (e, a)

add :: Accumulated e t => e -> t () Source #

Orphan instances

(Monoid e, Applicative u, Monad u) => Monad ((,) e <.:> u) Source # 
Instance details

Methods

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

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

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

Functor u => Functor ((,) e <.:> u) Source # 
Instance details

Methods

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

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

(Monoid e, Applicative u) => Applicative ((,) e <.:> u) Source # 
Instance details

Methods

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

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

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

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

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

(Monoid e, Alternative u) => Alternative ((,) e <.:> u) Source # 
Instance details

Methods

empty :: ((,) e <.:> u) a #

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

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

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