open-signals-0.1.0.3: A mechanism similar to checked exceptions that integrates with MTL and transformer stacks

Safe HaskellNone
LanguageHaskell2010

Control.Monad.Signal

Description

This module exposes the base Signal and SignalT types, but you probably want to use the Control.Monad.Signal.Class module because it also re-exports these types.

Synopsis

Documentation

data Signal sigs a Source

A Signal sigs a is either a Union sigs or a value of type a. It's basically the same as Union (a ': sigs) but the a parameter is special because it's used in the Functor/Applicative/Monad instances.k

Constructors

Value a 
Signal (Union sigs) 

Instances

MonadSignal sigs (Signal sigs) Source 
Monad (Signal sigs) Source 
Functor (Signal sigs) Source 
Applicative (Signal sigs) Source 
Foldable (Signal sigs) Source 
Traversable (Signal sigs) Source 
(Eq a, Eq (Union sigs)) => Eq (Signal sigs a) Source 
(Ord a, Ord (Union sigs)) => Ord (Signal sigs a) Source 
(Read a, Read (Union sigs)) => Read (Signal sigs a) Source 
(ShowSignal sigs, Show a) => Show (Signal sigs a) Source 

signal :: Elem sigs a => a -> Signal sigs b Source

Send a single signal.

liftSignal :: Subset as bs => Signal as a -> Signal bs a Source

Re-send all the signals into a "looser" Signal

newtype SignalT sigs m a Source

A transformer version of Signal.

Constructors

SignalT 

Fields

runSignalT :: m (Signal sigs a)
 

Instances

MonadState s m => MonadState s (SignalT sigs m) Source 
MonadWriter w m => MonadWriter w (SignalT sigs m) Source 
MonadReader r m => MonadReader r (SignalT sigs m) Source 
Monad m => MonadSignal sigs (SignalT sigs m) Source 
MonadTrans (SignalT sigs) Source 
Monad m => Monad (SignalT sigs m) Source 
Functor m => Functor (SignalT sigs m) Source 
MonadFix m => MonadFix (SignalT sigs m) Source

Not sure if correct

Applicative m => Applicative (SignalT sigs m) Source 
Foldable m => Foldable (SignalT sigs m) Source 
Traversable m => Traversable (SignalT sigs m) Source 
MonadIO m => MonadIO (SignalT sigs m) Source 
MonadCont m => MonadCont (SignalT sigs m) Source 
Eq (m (Signal sigs a)) => Eq (SignalT sigs m a) Source 
Ord (m (Signal sigs a)) => Ord (SignalT sigs m a) Source 
Read (m (Signal sigs a)) => Read (SignalT sigs m a) Source 
Show (m (Signal sigs a)) => Show (SignalT sigs m a) Source