1 module PreludeSig where
3 import Prelude(Ord,Bool,MonadZero,Int,($),(.))
4 import qualified Prelude as P
8 -- Begin Signature ----------------------------------------------------
10 Functions in this module are functions from the Haskell
11 prelude lifted on Signals
14 last :: Signal [a] -> Signal a
15 head :: Signal [a] -> Signal a
16 tail :: Signal [a] -> Signal [a]
17 splitAt :: Signal Int -> Signal [a] -> (Signal [a], Signal [a])
18 length :: Signal [a] -> Signal Int
19 max :: Ord a => Signal a -> Signal a -> Signal a
20 min :: Ord a => Signal a -> Signal a -> Signal a
21 maximum :: Ord a => Signal [a] -> Signal a
22 minimum :: Ord a => Signal [a] -> Signal a
23 filter :: MonadZero c => (a -> Bool) -> Signal (c a) -> Signal (c a)
24 partition :: (a -> Bool) -> Signal [a] -> (Signal [a],Signal [a])
25 fst :: Signal (a,b) -> Signal a
26 snd :: Signal (a,b) -> Signal b
28 -- End Signature -----------------------------------------------------
35 splitAt x y = unbundle2 $ lift2 P.splitAt x y
37 length = lift1 P.length
43 maximum = lift1 P.maximum
45 minimum = lift1 P.minimum
47 filter x y = lift1 (P.filter x) y
49 partition x y = unbundle2 (lift1 (List.partition x) y )
55 -- Begin Signature ----------------------------------------------------