Make it by haskell