summaryrefslogtreecommitdiff
path: root/src/ast_util.mli
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast_util.mli')
-rw-r--r--src/ast_util.mli9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ast_util.mli b/src/ast_util.mli
index a41f3737..8f8a2889 100644
--- a/src/ast_util.mli
+++ b/src/ast_util.mli
@@ -131,8 +131,14 @@ val nc_true : n_constraint
val nc_false : n_constraint
val nc_set : kid -> int list -> n_constraint
+(* Negate a n_constraint. Note that there's no NC_not constructor, so
+ this flips all the inequalites a the n_constraint leaves and uses
+ de-morgans to switch and to or and vice versa. *)
+val nc_negate : n_constraint -> n_constraint
+
val quant_items : typquant -> quant_item list
val quant_kopts : typquant -> kinded_id list
+val quant_split : typquant -> kinded_id list * n_constraint list
(* Functions to map over the annotations in sub-expressions *)
val map_exp_annot : ('a annot -> 'b annot) -> 'a exp -> 'b exp
@@ -247,6 +253,9 @@ val has_effect : effect -> base_effect_aux -> bool
val effect_set : effect -> BESet.t
+val equal_effects : effect -> effect -> bool
+val union_effects : effect -> effect -> effect
+
val tyvars_of_nexp : nexp -> KidSet.t
val tyvars_of_typ : typ -> KidSet.t