realworldhaskell examples