With -XTypeApplications you can do this with base's try: try @HttpException $ do... which is pretty handy. But with safe-exceptions you must do try @IO @HttpException. If the type parameters were explicitly ordered the other way around, the @IO could be "curried", i.e. left for type inference, more easily.