haskell99 problem 1
haskell99 problem 2
remove needless stuff
haskell99 problem 3
haskell99 problem 4
haskell99 problem 5