programs written in haskell