+exception Error of string lazy_t * exn option
+let fail ?exn msg = raise (Error (msg,exn))
+
+let wrap f x =
+ try f x
+ with
+ | MultiPassDisambiguator.DisambiguationError _
+ | NCicRefiner.RefineFailure _
+ | NCicUnification.UnificationFailure _
+ | NCicTypeChecker.TypeCheckerFailure _
+ | NCicMetaSubst.MetaSubstFailure _ as exn -> fail ~exn (lazy "")
+;;