redo haskell fun