This module contains the reference implementation for the pure subset of the simple variant of Elerea. I/O embedding is substituted by conversion from and to lists.

- type Signal a = Int -> a
- type SignalGen a = Int -> a
- fromList :: [a] -> Signal a
- toList :: Signal a -> [a]
- start :: SignalGen (Signal a) -> [a]
- delay :: a -> Signal a -> SignalGen (Signal a)
- snapshot :: Signal a -> SignalGen a
- generator :: Signal (SignalGen a) -> SignalGen (Signal a)
- memo :: Signal a -> SignalGen (Signal a)
- until :: (a -> Bool) -> (a -> a) -> a -> a
- stateful :: a -> (a -> a) -> SignalGen (Signal a)
- transfer :: a -> (t -> a -> a) -> Signal t -> SignalGen (Signal a)
- transfer2 :: a -> (t1 -> t2 -> a -> a) -> Signal t1 -> Signal t2 -> SignalGen (Signal a)
- transfer3 :: a -> (t1 -> t2 -> t3 -> a -> a) -> Signal t1 -> Signal t2 -> Signal t3 -> SignalGen (Signal a)
- transfer4 :: a -> (t1 -> t2 -> t3 -> t4 -> a -> a) -> Signal t1 -> Signal t2 -> Signal t3 -> Signal t4 -> SignalGen (Signal a)