real world haskell examples