Add Haskell Implementation