aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/tacticals.ml
diff options
context:
space:
mode:
authorGravatar aspiwack <aspiwack@85f007b7-540e-0410-9357-904b9bb8a0f7>2013-11-02 15:34:12 +0000
committerGravatar aspiwack <aspiwack@85f007b7-540e-0410-9357-904b9bb8a0f7>2013-11-02 15:34:12 +0000
commit84357f0d15a1137a4b1cc5cacb86d3af5c1ca93e (patch)
tree9d6b50c88ca6550048318ac19f74522d76b45f69 /tactics/tacticals.ml
parent1a1ee340de86b6688a8ceeec5eaa8e76032fe3f3 (diff)
Bases tactics on an IO monad.
It allowed to restore the timeout tactics. It also prepares for the debugging mechanism to be restored. ['a IO.t] is just [unit -> 'a]. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16970 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics/tacticals.ml')
-rw-r--r--tactics/tacticals.ml8
1 files changed, 8 insertions, 0 deletions
diff --git a/tactics/tacticals.ml b/tactics/tacticals.ml
index b9a104b64..ef6a0b19a 100644
--- a/tactics/tacticals.ml
+++ b/tactics/tacticals.ml
@@ -508,6 +508,14 @@ module New = struct
in
Proofview.V82.tactic (Refiner.tclEVARS sigma) <*> tac x <*> check_evars_if
+ let tclTIMEOUT n t =
+ Proofview.tclOR
+ (Proofview.tclTIMEOUT n t)
+ begin function
+ | Monads.IO.Timeout as e -> Proofview.tclZERO (Refiner.FailError (0,lazy (Errors.print e)))
+ | e -> Proofview.tclZERO e
+ end
+
let nthDecl m =
Proofview.Goal.hyps >>== fun hyps ->
try