Compare
this boolean control the fact that an equality is strict: i.e. it can not instanciate unification variables
val constant_mbind : int -> 'a -> (Ast.ordi, 'a) LibTools.Bindlib.mbinder
val mbind_assoc : (('a * 'b LibTools.Bindlib.box) list -> 'c LibTools.Bindlib.box) -> int -> ('a * (Ast.ordi, 'b) LibTools.Bindlib.mbinder) list -> (Ast.ordi, 'c) LibTools.Bindlib.mbinder
val set_kuvar : (Ast.kind, 'a) Ast.uvar -> (Ast.ordi, Ast.kind) LibTools.Bindlib.mbinder -> unit
function to set type variables (a more complex function safe_set_kuvar
exists)
val set_ouvar : ?msg:string -> (Ast.ordi, 'a) Ast.uvar -> (Ast.ordi, Ast.ordi) LibTools.Bindlib.mbinder -> unit
function to set ordi variables
val fbind_ordis : (Ast.ordi array -> Ast.kind -> Ast.kind Ast.from_ordis) Stdlib.ref
TODO: reorder the definition to minimize mutual recursion
val fobind_ordis : (Ast.ordi array -> Ast.ordi -> Ast.ordi Ast.from_ordis) Stdlib.ref
val eq_obinder : Ast.ordi list -> (Ast.ordi, Ast.kind) LibTools.Bindlib.binder -> (Ast.ordi, Ast.kind) LibTools.Bindlib.binder -> bool
val optpr : Stdlib.Format.formatter -> Ast.ordi option -> unit
try to set OUVar(p,os) with o. Return true in case of success.
val eq_schema : Ast.schema -> Ast.schema -> bool
val eq_term_or_kind : Ast.ordi list -> Ast.term_or_kind -> Ast.term_or_kind -> bool
val strict_eq_kbinder : (Ast.kind, Ast.kind) LibTools.Bindlib.binder -> (Ast.kind, Ast.kind) LibTools.Bindlib.binder -> bool
val strict_eq_tkbinder : (Ast.term', Ast.kind) LibTools.Bindlib.binder -> (Ast.term', Ast.kind) LibTools.Bindlib.binder -> bool
val strict_eq_tbinder : (Ast.term', Ast.term) LibTools.Bindlib.binder -> (Ast.term', Ast.term) LibTools.Bindlib.binder -> bool
val strict_eq_ord_wit : Ast.ord_wit -> Ast.ord_wit -> bool
val ouvar_mbind_occur : Ast.ouvar -> Ast.ordi Ast.from_ordis -> Ast.ordi array -> bool
val eq_kbinder : Ast.ordi list -> (Ast.kind, Ast.kind) LibTools.Bindlib.binder -> (Ast.kind, Ast.kind) LibTools.Bindlib.binder -> bool
val eq_tkbinder : Ast.ordi list -> (Ast.term', Ast.kind) LibTools.Bindlib.binder -> (Ast.term', Ast.kind) LibTools.Bindlib.binder -> bool
val eq_tbinder : Ast.ordi list -> (Ast.term', Ast.term) LibTools.Bindlib.binder -> (Ast.term', Ast.term) LibTools.Bindlib.binder -> bool
val eq_ord_wit : Ast.ordi list -> Ast.ord_wit -> Ast.ord_wit -> bool
val less_opt_ordi : Ast.ordi list -> Ast.ordi -> (Ast.ordi Ast.from_ordis option * Ast.ordi Ast.from_ordis option) -> Ast.ordi array -> bool
val assoc_tterm : (Ast.term', Ast.term) LibTools.Bindlib.binder -> ((Ast.term', Ast.term) LibTools.Bindlib.binder * 'a) list -> 'a
val assoc_tkind : (Ast.term', Ast.kind) LibTools.Bindlib.binder -> ((Ast.term', Ast.kind) LibTools.Bindlib.binder * 'a) list -> 'a
val assoc_kkind : (Ast.kind, Ast.kind) LibTools.Bindlib.binder -> ((Ast.kind, Ast.kind) LibTools.Bindlib.binder * 'a) list -> 'a