Make this more Haskell 1.3-insensitive
\begin{code}
#if __GLASGOW_HASKELL__ < 303
-ioError = fail
mayBlock fo thing = thing
writeCharOffAddr :: Addr -> Int -> Char -> IO ()
(\ handle ->
do sz <- hFileSize handle
if sz > toInteger (maxBound::Int)
- then ioError (userError "slurpFile: file too big")
+ then IOERROR (userError "slurpFile: file too big")
else do
let sz_i = fromInteger sz
sz_i' = (sz_i * 12) `div` 10 -- add 20% for tabs