package idd

  1. Overview
  2. Docs

Boolean variable on which a DD can branch. Morally just an integer, but modeled as a record for type safety.

type t
val equal : t -> t -> Ppx_deriving_runtime.bool
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t -> t -> int
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
include Ppx_hash_lib.Hashable.S with type t := t
val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
val hash : t -> Base.Hash.hash_value
val leaf_idx : int
val inp : int -> t
val out : int -> t
val is_inp : t -> bool
val is_out : t -> bool
val index : t -> int
val to_out : t -> t
val is_in_out_pair : t -> t -> bool
type closer_to_root =
  1. | Left
  2. | Right
  3. | 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 : int -> int -> bool

closer_to_root idx0 idx1 is whether or not a variable with index idx0 goes closer to the root of an ordered IDD than a variable with index idx1

val to_string : t -> string