Coq.Protect
module Error : sig ... end
This modules reifies Coq side effects into an algebraic structure.
module R : sig ... end
This "monad" could be related to "Runners in action" (Ahman, Bauer), thanks to Guillaume Munch-Maccagnoni for the reference and for many useful tips!
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 : token:Limits.Token.t -> 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! token
Does allow to interrupt the evaluation.