Haskell version of compose