Module Coq.Protect

module Error : sig ... end

This modules reifies Coq side effects into an algebraic structure.

module R : sig ... end
module E : sig ... end
val fb_queue : Loc.t Message.t list Stdlib.ref

Must be hooked to allow Protect to capture the feedback.

val eval : f:('i -> 'o) -> 'i -> ('o, Loc.t) E.t

Eval a function and reify the exceptions. Note f _must_ be pure, as in case of anomaly f may be re-executed with debug options. Beware, not thread-safe!