moffy-0.1.1.0: Monadic Functional Reactive Programming
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Moffy.Run

Contents

Synopsis

Type

data Sig s es a r Source #

Instances

Instances details
((es :+: es) ~ es, Mergeable es es es, Monoid r) => Applicative (Flip (Sig s es) r) Source # 
Instance details

Defined in Control.Moffy.Internal.Sig

Methods

pure :: a -> Flip (Sig s es) r a #

(<*>) :: Flip (Sig s es) r (a -> b) -> Flip (Sig s es) r a -> Flip (Sig s es) r b #

liftA2 :: (a -> b -> c) -> Flip (Sig s es) r a -> Flip (Sig s es) r b -> Flip (Sig s es) r c #

(*>) :: Flip (Sig s es) r a -> Flip (Sig s es) r b -> Flip (Sig s es) r b #

(<*) :: Flip (Sig s es) r a -> Flip (Sig s es) r b -> Flip (Sig s es) r a #

Functor (Flip (Sig s es) r) Source # 
Instance details

Defined in Control.Moffy.Internal.Sig.Type

Methods

fmap :: (a -> b) -> Flip (Sig s es) r a -> Flip (Sig s es) r b #

(<$) :: a -> Flip (Sig s es) r b -> Flip (Sig s es) r a #

Applicative (Sig s es a) Source # 
Instance details

Defined in Control.Moffy.Internal.Sig.Type

Methods

pure :: a0 -> Sig s es a a0 #

(<*>) :: Sig s es a (a0 -> b) -> Sig s es a a0 -> Sig s es a b #

liftA2 :: (a0 -> b -> c) -> Sig s es a a0 -> Sig s es a b -> Sig s es a c #

(*>) :: Sig s es a a0 -> Sig s es a b -> Sig s es a b #

(<*) :: Sig s es a a0 -> Sig s es a b -> Sig s es a a0 #

Functor (Sig s es a) Source # 
Instance details

Defined in Control.Moffy.Internal.Sig.Type

Methods

fmap :: (a0 -> b) -> Sig s es a a0 -> Sig s es a b #

(<$) :: a0 -> Sig s es a b -> Sig s es a a0 #

Monad (Sig s es a) Source # 
Instance details

Defined in Control.Moffy.Internal.Sig.Type

Methods

(>>=) :: Sig s es a a0 -> (a0 -> Sig s es a b) -> Sig s es a b #

(>>) :: Sig s es a a0 -> Sig s es a b -> Sig s es a b #

return :: a0 -> Sig s es a a0 #

type Handle m es = EvReqs es -> m (EvOccs es) Source #

type HandleSt st m es = EvReqs es -> St st m (EvOccs es) Source #

type St st m a = st -> m (a, st) Source #

Run

interpret :: (Monad m, Adjustable es es') => Handle m es' -> (a -> m ()) -> Sig s es a r -> m r Source #

interpretSt :: (Monad m, Adjustable es es') => HandleSt st m es' -> (a -> m ()) -> Sig s es a r -> St st m r Source #

interpretReact :: (Monad m, Adjustable es es') => Handle m es' -> React s es r -> m r Source #

interpretReactSt :: (Monad m, Adjustable es es') => HandleSt st m es' -> React s es r -> St st m r Source #