grapefruit-frp-0.1.0.7: Functional Reactive Programming core

Safe HaskellNone
LanguageHaskell98

FRP.Grapefruit.Signal.Incremental

Contents

Synopsis

Incremental signal type

data ISignal era val Source #

class Semigroup (Diff val) => Incremental val where Source #

Minimal complete definition

patch, validationInit, validationStep

Associated Types

data Diff val :: * Source #

type ValidationState val :: * Source #

Methods

patch :: val -> Diff val -> val Source #

validationInit :: val -> ValidationState val Source #

validationStep :: Diff val -> ValidationState val -> Maybe (ValidationState val) Source #

Monolithic values

newtype Monolithic val Source #

Constructors

Monolithic val 

Construction

construct :: Incremental val => val -> DSignal era (Diff val) -> ISignal era val Source #

Queries

withInit :: Signal signal => ISignal era val -> (val -> signal era val') -> signal era val' Source #

updates :: ISignal era val -> DSignal era (Diff val) Source #

Conversion

toSSignal :: Incremental val => ISignal era val -> SSignal era val Source #

Composition

const :: Incremental val => val -> ISignal era val Source #

map :: (Incremental val, Incremental val') => (val -> (val', state)) -> (Diff val -> state -> (Diff val', state)) -> ISignal era val -> ISignal era val' Source #

combine :: (Incremental val1, Incremental val2, Incremental val') => (val1 -> val2 -> (val', state)) -> (Diff val1 -> state -> (Diff val', state)) -> (Diff val2 -> state -> (Diff val', state)) -> ISignal era val1 -> ISignal era val2 -> ISignal era val' Source #

Connectors

consumer :: (val -> IO ()) -> (Diff val -> IO ()) -> Consumer ISignal val Source #