adopt much haskell