done with 2 in Haskell