[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / tests / stranal / ins.lhs
1 TEST OF DEFACTORISATION FOR FUNCTIONS THAT DROP 
2              POLYMORPHIC VARIABLES
3
4 > data Boolean = FF | TT
5 > data Pair a b = MkPair a b
6 > data LList alpha = Nill | Conss alpha (LList alpha) 
7 > data Nat = Zero | Succ Nat
8 > data Tree x = Leaf x | Node (Tree x) (Tree x) 
9 > data A a = MkA a (A a) 
10 >
11 > append :: LList a -> LList a -> LList a
12 > append  xs ys  = case xs of
13 >                   Nill -> ys 
14 >                   Conss z zs  -> Conss z (append zs ys) 
15
16 The following function drops @b@.
17
18 > flat :: Tree (Pair a b) -> LList a
19 > flat t =  case t of
20 >               Leaf (MkPair a b) -> Conss a Nill 
21 >               Node l r -> append (flat l) (flat r)
22 >
23 > fl :: Boolean -> LList Boolean
24 > fl x = flat (Leaf (MkPair TT Zero)) 
25 >
26