sodium-0.5.0.1: Sodium Reactive Programming (FRP) System

Safe HaskellNone

FRP.Sodium.Internal

Synopsis

Documentation

listenTrans :: Event a -> (a -> Reactive ()) -> Reactive (IO ())Source

Variant of listen that allows you to initiate more activity in the current transaction. Useful for implementing new primitives.

listenValueTrans :: Behavior a -> (a -> Reactive ()) -> Reactive (IO ())Source

Variant of listenValue that allows you to initiate more activity in the current transaction. Useful for implementing new primitives.

schedulePrioritized :: Maybe (IORef Node) -> Reactive () -> Reactive ()Source

Queue the specified atomic to run at the end of the priority 2 queue

data Listen a Source

Constructors

Listen 

Fields

runListen_ :: Maybe (IORef Node) -> Bool -> (a -> Reactive ()) -> Reactive (IO ())
 

getListen :: Event a -> Reactive (Listen a)Source

Unwrap an event's listener machinery.

linkedListen :: Event a -> Maybe (IORef Node) -> Bool -> (a -> Reactive ()) -> Reactive (IO ())Source

Listen for firings of this event. The returned IO () is an IO action that unregisters the listener. This is the observer pattern.

data Node Source

Instances

PriorityQueueable (Maybe (IORef Node)) 

newEventLinked :: IO (Event a, a -> Reactive (), IORef Node)Source

Returns an event, and a push action for pushing a value into the event.

newEvent :: Reactive (Event a, a -> Reactive ())Source

Returns an event, and a push action for pushing a value into the event.

finalizeEvent :: Event a -> IO () -> Event aSource

Add a finalizer to an event.

finalizeListen :: Listen a -> IO () -> IO (Listen a)Source

Add a finalizer to a listener.

addCleanup :: Unlistener -> Listen a -> Reactive (Listen a)Source

Cause the things listened to with unlistenize to be unlistened when the specified listener is not referenced any more.

unlistenize :: Reactive (IO ()) -> Reactive UnlistenerSource

Listen to an input event/behavior and return an Unlistener that can be attached to an output event using addCleanup.