-
-#if __HASKELL1__ <= 4
-($!) :: (Eval a) => (a -> b) -> a -> b
-f $! x = x `seq` f x
-#endif
-\end{code}
-
-\begin{code}
-#if __GLASGOW_HASKELL__ < 402
-bracket :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c
-bracket before after thing = do
- a <- before
- r <- (thing a) `catch` (\err -> after a >> fail err)
- after a
- return r
-#endif