Copyright | (c) Ertugrul Soeylemez 2013 (c) Rongcui Dong 2015 |
---|---|
License | BSD3 |
Maintainer | Rongcui Dong <karl_1702@188.com> |
Safe Haskell | Safe |
Language | Haskell2010 |
- module FRP.Timeless.Run
- type Signal a b = Signal IO a b
- type Stream a b = Signal (Maybe a) (Maybe b)
- type StreamSource b = Signal () (Maybe b)
- type StreamSink a = Signal (Maybe a) ()
- type CellSource b = Signal () b
- type CellSink a = Signal a ()
- type Cell a b = Signal a b
- type StreamCell a b = Signal (Maybe a) b
- arrS :: (a -> b) -> Stream a b
- neverS :: StreamSource b
- onceS :: b -> StreamSource b
- delay :: a -> Signal m a a
- sourceC :: IO b -> CellSource b
- sinkC :: (a -> IO ()) -> CellSink a
- sourceS :: IO (Maybe b) -> StreamSource b
- sinkS :: (a -> IO ()) -> StreamSink a
- mergeS :: ((a, a) -> a) -> Signal (Maybe a, Maybe a) (Maybe a)
- mergeSP :: Signal (Maybe b, Maybe b) (Maybe b)
- hold :: a -> StreamCell a a
- filterS :: (a -> Bool) -> Stream a a
- filterSM :: Stream (Maybe a) a
- snapshot :: ((a, b) -> c) -> Signal (Maybe a, b) (Maybe c)
- sample :: Signal (Maybe a, b) (Maybe b)
- state :: s -> ((a, s) -> s) -> StreamCell a s
- zipS :: Signal m (Maybe a, Maybe b) (Maybe (a, b))
- zipS3 :: Signal m (Maybe a, Maybe b, Maybe c) (Maybe (a, b, c))
- zipS4 :: Signal m (Maybe a, Maybe b, Maybe c, Maybe d) (Maybe (a, b, c, d))
- zipS5 :: Signal m (Maybe a, Maybe b, Maybe c, Maybe d, Maybe e) (Maybe (a, b, c, d, e))
- zipS6 :: Signal m (Maybe a, Maybe b, Maybe c, Maybe d, Maybe e, Maybe f) (Maybe (a, b, c, d, e, f))
- zipS7 :: Signal m (Maybe a, Maybe b, Maybe c, Maybe d, Maybe e, Maybe f, Maybe g) (Maybe (a, b, c, d, e, f, g))
- module Control.Applicative
- module Control.Arrow
- module Control.Category
Documentation
module FRP.Timeless.Run
High level FRP
type StreamSource b = Signal () (Maybe b) Source #
A Source of discrete event
type StreamSink a = Signal (Maybe a) () Source #
A Sink of discrete event
type CellSource b = Signal () b Source #
A Source of discrete event
type StreamCell a b = Signal (Maybe a) b Source #
FRP Primitives
neverS :: StreamSource b Source #
A StreamSource
that never fires
onceS :: b -> StreamSource b Source #
A StreamSource
that fires only ones
sourceC :: IO b -> CellSource b Source #
sinkS :: (a -> IO ()) -> StreamSink a Source #
mergeS :: ((a, a) -> a) -> Signal (Maybe a, Maybe a) (Maybe a) Source #
Merges two Stream
. When simultaneous, use the merge function
mergeSP :: Signal (Maybe b, Maybe b) (Maybe b) Source #
Merges two Stream
with precedence to first. P stands for Priority
hold :: a -> StreamCell a a Source #
Holds a discrete value to be continuous. An initial value must be given
filterS :: (a -> Bool) -> Stream a a Source #
Filters stream of event.
TODO: In future, might implement Foldable
state :: s -> ((a, s) -> s) -> StreamCell a s Source #
A state block, updates on event. Note that this can be
constructed with Signal
directly, but we are using primitives
instead, for easy reasoning
zipS6 :: Signal m (Maybe a, Maybe b, Maybe c, Maybe d, Maybe e, Maybe f) (Maybe (a, b, c, d, e, f)) Source #
zipS7 :: Signal m (Maybe a, Maybe b, Maybe c, Maybe d, Maybe e, Maybe f, Maybe g) (Maybe (a, b, c, d, e, f, g)) Source #
External
module Control.Applicative
module Control.Arrow
module Control.Category