aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2019-02-04 15:25:42 +0100
committerPierre-Marie Pédrot2019-02-04 15:25:42 +0100
commit720ee2730684cc289cef588482323d177e0bea59 (patch)
treee4deb55f090c3eb447f676a5f3529ca3b8fdd2d3 /kernel
parentd5722a22c9ae4dec43f8c444fbebb1b1072fb686 (diff)
parentf6613489304a30846af28334c040c7d4f9e4addc (diff)
Merge PR #9317: Restrict universes in records.
Ack-by: SkySkimmer Reviewed-by: mattam82 Reviewed-by: ppedrot
Diffstat (limited to 'kernel')
-rw-r--r--kernel/context.ml9
-rw-r--r--kernel/context.mli3
2 files changed, 12 insertions, 0 deletions
diff --git a/kernel/context.ml b/kernel/context.ml
index 3d98381fbb..1cc6e79485 100644
--- a/kernel/context.ml
+++ b/kernel/context.ml
@@ -134,6 +134,15 @@ struct
let ty' = f ty in
if v == v' && ty == ty' then decl else LocalDef (na, v', ty')
+ let map_constr_het f = function
+ | LocalAssum (na, ty) ->
+ let ty' = f ty in
+ LocalAssum (na, ty')
+ | LocalDef (na, v, ty) ->
+ let v' = f v in
+ let ty' = f ty in
+ LocalDef (na, v', ty')
+
(** Perform a given action on all terms in a given declaration. *)
let iter_constr f = function
| LocalAssum (_,ty) -> f ty
diff --git a/kernel/context.mli b/kernel/context.mli
index 2b0d36cb8c..8acae73680 100644
--- a/kernel/context.mli
+++ b/kernel/context.mli
@@ -78,6 +78,9 @@ sig
(** Map all terms in a given declaration. *)
val map_constr : ('c -> 'c) -> ('c, 'c) pt -> ('c, 'c) pt
+ (** Map all terms, with an heterogeneous function. *)
+ val map_constr_het : ('a -> 'b) -> ('a, 'a) pt -> ('b, 'b) pt
+
(** Perform a given action on all terms in a given declaration. *)
val iter_constr : ('c -> unit) -> ('c, 'c) pt -> unit