redo (remake of make) in Haskell