bearriver-0.10.4: A replacement of Yampa based on Monadic Stream Functions.

Safe HaskellSafe
LanguageHaskell2010

FRP.BearRiver

Contents

Synopsis

Documentation

identity :: Monad m => SF m a a Source #

constant :: Monad m => b -> SF m a b Source #

iPre :: Monad m => a -> SF m a a Source #

Continuous time

time :: Monad m => SF m () Time Source #

integral :: (Monad m, VectorSpace a s) => SF m a a Source #

integralFrom :: (Monad m, VectorSpace a s) => a -> SF m a a Source #

derivative :: (Monad m, VectorSpace a s) => SF m a a Source #

derivativeFrom :: (Monad m, VectorSpace a s) => a -> SF m a a Source #

Events

data Event a Source #

Constructors

Event a 
NoEvent 

Instances

Functor Event Source # 

Methods

fmap :: (a -> b) -> Event a -> Event b #

(<$) :: a -> Event b -> Event a #

Applicative Event Source # 

Methods

pure :: a -> Event a #

(<*>) :: Event (a -> b) -> Event a -> Event b #

(*>) :: Event a -> Event b -> Event b #

(<*) :: Event a -> Event b -> Event a #

Show a => Show (Event a) Source # 

Methods

showsPrec :: Int -> Event a -> ShowS #

show :: Event a -> String #

showList :: [Event a] -> ShowS #

event :: a -> (b -> a) -> Event b -> a Source #

tag :: Event a -> b -> Event b Source #

mergeBy :: (a -> a -> a) -> Event a -> Event a -> Event a Source #

lMerge :: Event a -> Event a -> Event a Source #

Relation to other types

Hybrid SF m combinators

edge :: Monad m => SF m Bool (Event ()) Source #

edgeBy :: Monad m => (a -> a -> Maybe b) -> a -> SF m a (Event b) Source #

edgeFrom :: Monad m => Bool -> SF m Bool (Event ()) Source #

notYet :: Monad m => SF m (Event a) (Event a) Source #

Suppression of initial (at local time 0) event.

hold :: Monad m => a -> SF m (Event a) a Source #

loopPre :: Monad m => c -> SF m (a, c) (b, c) -> SF m a b Source #

after Source #

Arguments

:: Monad m 
=> Time

The time q after which the event should be produced

-> b

Value to produce at that time

-> SF m a (Event b) 

(-->) :: Monad m => b -> SF m a b -> SF m a b Source #

accumHoldBy :: Monad m => (b -> a -> b) -> b -> SF m (Event a) b Source #

dpSwitchB :: (Monad m, Traversable col) => col (SF m a b) -> SF m (a, col b) (Event c) -> (col (SF m a b) -> c -> SF m a (col b)) -> SF m a (col b) Source #

dSwitch :: Monad m => SF m a (b, Event c) -> (c -> SF m a b) -> SF m a b Source #

switch :: Monad m => SF m a (b, Event c) -> (c -> SF m a b) -> SF m a b Source #

parC :: Monad m => SF m a b -> SF m [a] [b] Source #

parC' :: Monad m => [SF m a b] -> SF m [a] [b] Source #

iterFrom :: Monad m => (a -> a -> DTime -> b -> b) -> b -> SF m a b Source #

reactimate :: IO a -> (Bool -> IO (DTime, Maybe a)) -> (Bool -> b -> IO Bool) -> SF Identity a b -> IO () Source #

Auxiliary

Tuples

dup :: t -> (t, t) Source #

swap :: (t1, t) -> (t, t1) Source #