aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormsozeau2012-03-14 09:52:25 +0000
committermsozeau2012-03-14 09:52:25 +0000
commit1b3efc6dc25be1bfde5fb7d2d39cc5c35e44a4d8 (patch)
tree3f22240472bd260847f4b5b26581cfdfbc3e071a /lib
parent1674ab8bc0b76a1162928d0d9097c6a97486205d (diff)
Second step of integration of Program:
- Remove useless functorization of Pretyping - Move Program coercion/cases code inside pretyping/, enabled according to a flag. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@15033 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib')
-rw-r--r--lib/flags.ml3
-rw-r--r--lib/flags.mli3
-rw-r--r--lib/util.ml5
-rw-r--r--lib/util.mli1
4 files changed, 12 insertions, 0 deletions
diff --git a/lib/flags.ml b/lib/flags.ml
index 470cf81f18..29e01bac39 100644
--- a/lib/flags.ml
+++ b/lib/flags.ml
@@ -66,6 +66,9 @@ let auto_intros = ref true
let make_auto_intros flag = auto_intros := flag
let is_auto_intros () = version_strictly_greater V8_2 && !auto_intros
+let program_mode = ref false
+let is_program_mode () = !program_mode
+
let hash_cons_proofs = ref true
let warn = ref true
diff --git a/lib/flags.mli b/lib/flags.mli
index da43c86782..94c8795d45 100644
--- a/lib/flags.mli
+++ b/lib/flags.mli
@@ -47,6 +47,9 @@ val if_verbose : ('a -> unit) -> 'a -> unit
val make_auto_intros : bool -> unit
val is_auto_intros : unit -> bool
+val program_mode : bool ref
+val is_program_mode : unit -> bool
+
val make_warn : bool -> unit
val if_warn : ('a -> unit) -> 'a -> unit
diff --git a/lib/util.ml b/lib/util.ml
index 8798842837..c4229fd322 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -1211,6 +1211,11 @@ let iterate_for a b f x =
let rec iterate i v = if i > b then v else iterate (succ i) (f i v) in
iterate a x
+let app_opt f x =
+ match f with
+ | Some f -> f x
+ | None -> x
+
(* Delayed computations *)
type 'a delayed = unit -> 'a
diff --git a/lib/util.mli b/lib/util.mli
index caf1723b3b..868a76711c 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -261,6 +261,7 @@ val const : 'a -> 'b -> 'a
val iterate : ('a -> 'a) -> int -> 'a -> 'a
val repeat : int -> ('a -> unit) -> 'a -> unit
val iterate_for : int -> int -> (int -> 'a -> 'a) -> 'a -> 'a
+val app_opt : ('a -> 'a) option -> 'a -> 'a
(** {6 Delayed computations. } *)