> IS THE I/O SYSTEM IN HASKELL ADEQUATE?
I think the answer is: NO!
What you want to do cannot be done in Haskell. Some people may
argue that it should be done in another way, but I think your
Miranda solution is perfectly good.
If you are more interested in getting a running program than writing
in standard Haskell you might want to consider using hbc. It contains
a module IO which (among other things) has the function
openFile :: String -> Either String String
which given a file name returns the contents of the file or an error message.
This module is not written in Haskell (since it's impossible to do that).
-- Lennart