withFile name mode act opens a file like
openFile and passes the resulting handle to the computation
act. The handle will be closed on exit from
withFile,
whether by normal termination or by raising an exception. If closing
the handle raises an exception, then this exception will be raised by
withFile rather than any exception raised by
act.