diff options
Diffstat (limited to 'testsuite/tests/stranal/should_compile/unu.hs')
-rw-r--r-- | testsuite/tests/stranal/should_compile/unu.hs | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/testsuite/tests/stranal/should_compile/unu.hs b/testsuite/tests/stranal/should_compile/unu.hs new file mode 100644 index 0000000000..54bb25e9ab --- /dev/null +++ b/testsuite/tests/stranal/should_compile/unu.hs @@ -0,0 +1,76 @@ +module Test where +data Boolean = FF | TT +data Pair a b = Mkpair a b +data LList alpha = Nill | Conss alpha (LList alpha) +data Nat = Zero | Succ Nat +data Tree t = Leaf t | Node (Tree t) (Tree t) +data A a = MkA a (A a) +data Foo baz = MkFoo (Foo (Foo baz)) +{- + append1 :: LList a -> LList a -> LList a + append1 xs ys = append2 xs + where + append2 xs = case xs of + Nill -> ys + Conss x xs -> Conss x (append3 xs) + append3 xs = case xs of + Nill -> ys + Conss x xs -> Conss x (append2 xs) + + loop :: a -> a + loop x = loop x + + hd :: LList b -> b + hd Nill = loop + hd (Conss y ys) = y + + hdb :: LList (LList b) -> LList b + hdb = hd + + append :: [a] -> [a] -> [a] + append [] ys = ys + append (x:xs) ys = x:(append xs ys) + + f :: [a] -> [a] + f y = append x (f y) + where x = append x (f y) +-} +app :: LList a -> LList a -> LList a +app Nill Nill = Nill +app xs ys = case xs of + Nill -> ys + Conss z zs -> Conss z (app zs ys) +{- + app :: LList a -> LList a -> LList a + app xs ys = case xs of + Nill -> case ys of + Nill -> Nill + Conss u us -> ap + Conss a as -> ap + where ap = case xs of + Nill -> ys + Conss z zs -> Conss z (app zs ys) + + app :: LList a -> LList a -> LList a + app xs ys = case xs of + Nill -> case ys of + Nill -> Nill + Conss u us -> ap xs ys + Conss a as -> ap xs ys + + ap xs ys = case xs of + Nill -> ys + Conss z zs -> Conss z (app zs ys) + + ap :: LList a -> LList a -> LList a + ap xs ys = case xs of + Nill -> ys + Conss z zs -> Conss z (ap zs ys) + + app :: LList a -> LList a -> LList a + app xs ys = case xs of + Nill -> case ys of + Nill -> Nill + Conss u us -> ap xs ys + Conss a as -> ap xs ys +-} |