-- Slide 28 data Nat = Zero | Succ Nat deriving Show intValOf thisNat = case thisNat of Zero -> 0 Succ nextNat -> 1 + intValOf nextNat natValOf thisInt = if thisInt == 0 then Zero else Succ (natValOf (thisInt - 1)) addition aNat tinyNat = case tinyNat of Zero -> aNat Succ tinierNat -> Succ (addition aNat tinierNat) additiont aNat tinyNat = case tinyNat of Zero -> aNat Succ tinierNat -> additiont (Succ aNat) tinierNat