HaRe-0.6: tools/hs2alfa/tests/Test0.hs
module Test0 where
import Prelude hiding (length,even,odd)
-- Testing literals:
t = 'T'
hello = "Hello, world!"
--answer :: Num a => a
--answer = 42
n = Nothing
tr = True
fa = False
data Nat = Zero | Succ Nat deriving (Eq)
add Zero b = b
add (Succ n) b = Succ (add n b)
length xs = case xs of
[] -> Zero
(x:xs) -> Succ (length xs)
z = length []
sz = Succ z
assert A1 = {length []} === {Zero}
assert A2 = z === {Zero}
even Zero = True
even (Succ n) = odd n
odd Zero = Prelude.False
odd (Succ n) = even n
data Tree a = Leaf a | Node (Tree a) (Tree a)
data App f a = App (f a)
xs = [Nothing,Just ()]
four = let z = Zero
s x = Succ x
in s ( s ( s (s z)))
x = id four
--n' = fmap id n
--ys = fmap isJust xs
instance Show Nat
instance Num Nat where
(+) = add
--(-) = undefined
--(*) = undefined
--fromInteger = undefined
double x = x+x
swap (x,y) = (y,x)
--super x y = (x==y,x<=y)