diff options
| author | Enrico Tassi | 2018-01-25 16:21:56 +0100 |
|---|---|---|
| committer | Enrico Tassi | 2018-01-31 14:09:08 +0100 |
| commit | 1176d4086b65c79a1d30a55640d3d933fa24a7c1 (patch) | |
| tree | c3976fa8b5046111fdd2e4348f308f381a7b4f4d /engine/proofview.mli | |
| parent | 9aa2464375c1515aa64df7dc910e2f324e34c82f (diff) | |
Proofview: enter_one: add __LOC__ argument to get relevant error msg
The type discipline of the tactic monad does not distinguish between
mono-goal and multi-goal tactics. Unfortunately enter_one "asserts
false" if called on 0 or > 1 goals. The __LOC__:string argument can
be used to make the error message more helpful (since the backtrace is
pointless inside the monad).
The intended usage is "Goal.enter_one ~__LOC__ (fun gl -> ..".
The __LOC__ variable is filled in by the OCaml compiler with the current
file name and line number.
Diffstat (limited to 'engine/proofview.mli')
| -rw-r--r-- | engine/proofview.mli | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/engine/proofview.mli b/engine/proofview.mli index 59728a2fd1..b02fde3a80 100644 --- a/engine/proofview.mli +++ b/engine/proofview.mli @@ -499,7 +499,7 @@ module Goal : sig (** Like {!enter}, but assumes exactly one goal under focus, raising *) (** a fatal error otherwise. *) - val enter_one : ([ `LZ ] t -> 'a tactic) -> 'a tactic + val enter_one : ?__LOC__:string -> ([ `LZ ] t -> 'a tactic) -> 'a tactic (** Recover the list of current goals under focus, without evar-normalization. FIXME: encapsulate the level in an existential type. *) |
