ramus-0.1.1: library/Ramus/Channel.hs
module Ramus.Channel where
import Ramus.Signal
import Ramus.Internal
newtype Channel a = Channel (Signal a)
-- |Creates a channel, which allows you to feed arbitrary values into a signal.
channel :: a -> IO (Channel a)
channel = return . Channel . make
-- |Sends a value to a given channel.
send :: Channel a -> a -> IO ()
send (Channel c) = set c
-- |Takes a channel and returns a signal of the values sent to it.
subscribe :: Channel a -> Signal a
subscribe (Channel c) = c