timeless-0.9.0.1: An Arrow based Functional Reactive Programming library

Copyright(c) Ertugrul Soeylemez 2013
Rongcui Dong 2015
LicenseBSD3
MaintainerRongcui Dong <karl_1702@188.com>
Safe HaskellSafe
LanguageHaskell2010

FRP.Timeless.Signal

Contents

Description

 

Synopsis

Signal

data Signal s m a b where Source #

Constructors

SId :: Signal s m a a 
SConst :: Maybe b -> Signal s m a b 
SArr :: (Maybe a -> Maybe b) -> Signal s m a b 
SPure :: (s -> Maybe a -> (Maybe b, Signal s m a b)) -> Signal s m a b 
SGen :: Monad m => (s -> Maybe a -> m (Maybe b, Signal s m a b)) -> Signal s m a b 

Instances

Monad m => Category * (Signal s m) Source # 

Methods

id :: cat a a #

(.) :: cat b c -> cat a b -> cat a c #

Monad m => Arrow (Signal s m) Source # 

Methods

arr :: (b -> c) -> Signal s m b c #

first :: Signal s m b c -> Signal s m (b, d) (c, d) #

second :: Signal s m b c -> Signal s m (d, b) (d, c) #

(***) :: Signal s m b c -> Signal s m b' c' -> Signal s m (b, b') (c, c') #

(&&&) :: Signal s m b c -> Signal s m b c' -> Signal s m b (c, c') #

Monad m => ArrowChoice (Signal s m) Source # 

Methods

left :: Signal s m b c -> Signal s m (Either b d) (Either c d) #

right :: Signal s m b c -> Signal s m (Either d b) (Either d c) #

(+++) :: Signal s m b c -> Signal s m b' c' -> Signal s m (Either b b') (Either c c') #

(|||) :: Signal s m b d -> Signal s m c d -> Signal s m (Either b c) d #

MonadFix m => ArrowLoop (Signal s m) Source # 

Methods

loop :: Signal s m (b, d) (c, d) -> Signal s m b c #

Monad m => Functor (Signal s m a) Source # 

Methods

fmap :: (a -> b) -> Signal s m a a -> Signal s m a b #

(<$) :: a -> Signal s m a b -> Signal s m a a #

Monad m => Applicative (Signal s m a) Source # 

Methods

pure :: a -> Signal s m a a #

(<*>) :: Signal s m a (a -> b) -> Signal s m a a -> Signal s m a b #

(*>) :: Signal s m a a -> Signal s m a b -> Signal s m a b #

(<*) :: Signal s m a a -> Signal s m a b -> Signal s m a a #

stepSignal Source #

Arguments

:: Monad m 
=> Signal s m a b

Signal to be stepped

-> s

Delta session

-> Maybe a

Input | Stateful output

-> m (Maybe b, Signal s m a b) 

Steps a signal in certain time step

Utilities

lstrict :: (a, b) -> (a, b) Source #

Left strict tuple