|Maintainer||Ertugrul Soeylemez <email@example.com>|
The module contains the main
- data Wire where
- data WireState where
- type Event = Maybe
- data InhibitException
- type Output = Either SomeException
- type SF = Wire Identity
- type Time = Double
- cleanupWireState :: WireState m -> IO ()
- inhibitEx :: String -> SomeException
- initWireState :: MonadIO m => IO (WireState m)
- mkGen :: (WireState m -> a -> m (Output b, Wire m a b)) -> Wire m a b
- toGen :: Monad m => Wire m a b -> WireState m -> a -> m (Output b, Wire m a b)
A wire is a network of signal transformers.
|WArr :: (a -> b) -> Wire m a b|
|WConst :: b -> Wire m a b|
|WGen :: (WireState m -> a -> m (Output b, Wire m a b)) -> Wire m a b|
|WId :: Wire m a a|
The state of the wire.
Events are signals, which can be absent. They usually denote discrete occurences of certain events.
Inhibition exception with an informative message. This exception is the result of signal inhibition, where no further exception information is available.
The output of a wire. When the wire inhibits, then this will be a
Left value with an exception.
Create a generic wire from the given function. This is a smart
constructor. Please use it instead of the