Module Idds.Var

type t
val equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Base.int
include Ppx_sexp_conv_lib.Sexpable.S with type Var.t := t
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t
val hash_fold_t : Ppx_hash_lib.Std.Hash.state -> t -> Ppx_hash_lib.Std.Hash.state
val hash : t -> Ppx_hash_lib.Std.Hash.hash_value
include Base.Comparator.S with type Var.t := t
type comparator_witness
val comparator : (tcomparator_witness) Base.Comparator.comparator
val leaf_idx : Base.int
val inp : Base.int -> t
val out : Base.int -> t
val is_inp : t -> Base.bool
val is_out : t -> Base.bool
val index : t -> Base.int
val to_out : t -> t
val is_in_out_pair : t -> t -> Base.bool
type closer_to_root =
| Left
| Right
| Equal

closer_to_root v0 v1 says whether, if v0 and v1 were to appear in the same, ordered IDD, v0 or v1 would appear closer to the root.

val closer_to_root : t -> t -> closer_to_root
val idx_strictly_closer_to_root : Base.int -> Base.int -> Base.bool

idx_strictly_closer_to_root idx0 idx1 is whether a variable with index idx0 is closer to the root of an ordered IDD than a variable with index idx1

val to_string : t -> Base.string