tryM again: make it work with GHC 5.02.x (I hope). Seems we changed
the representation of UserErrors several times in the last few
releases...
where
#if __GLASGOW_HASKELL__ > 504 || __GLASGOW_HASKELL__ < 500
tc_errors e@(IOException ioe) | isUserError ioe = Just e
-#else
+#elif __GLASGOW_HASKELL__ == 502
+ tc_errors (UserError _) = Just e
+#else
tc_errors e@(IOException ioe) | isUserError e = Just e
#endif
tc_errors _other = Nothing