Reading 3imp with Haskell