R5RS Scheme implemented in Haskell