[project @ 1999-04-29 11:53:12 by simonpj]
[ghc-hetmet.git] / ghc / tests / programs / jeff-bug / PreludeSig.hs
1 module PreludeSig where
2
3 import Prelude(Ord,Bool,MonadZero,Int,($),(.))
4 import qualified Prelude as P
5 import qualified List
6 import Signal
7
8 -- Begin Signature ----------------------------------------------------
9 {- 
10    Functions in this module are functions from the Haskell
11    prelude lifted on Signals
12 -}
13
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
27
28 -- End Signature -----------------------------------------------------
29 last = lift1 P.last
30
31 head = lift1 P.head
32
33 tail = lift1 P.tail
34
35 splitAt x y = unbundle2 $ lift2 P.splitAt x y
36
37 length = lift1 P.length
38
39 max = lift2 P.max
40
41 min = lift2 P.min
42
43 maximum = lift1 P.maximum
44
45 minimum = lift1 P.minimum
46
47 filter x y = lift1 (P.filter x) y
48
49 partition x y = unbundle2 (lift1 (List.partition x) y )
50
51 fst = lift1 P.fst
52
53 snd = lift1 P.snd
54
55 -- Begin Signature ----------------------------------------------------