package bddapron

  1. Overview
  2. Docs
type (!'a, !'b) elt = {
  1. guard : 'a Cudd.Bdd.t;
  2. leaf : 'b;
}
type (!'a, !'b) t = ('a, 'b) elt list
val fold2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
val check_unicity : is_equal:('b -> 'b -> bool) -> ('a, 'b) elt list -> bool
val check_disjointness : ('a, 'b) elt list -> bool
val cons_unique : is_equal:('b -> 'b -> bool) -> ('a, 'b) elt -> ('a, 'b) elt list -> ('a, 'b) elt list
val append_unique : is_equal:('b -> 'b -> bool) -> ('a, 'b) elt list -> ('a, 'b) elt list -> ('a, 'b) elt list
val cons_disjoint : is_equal:('b -> 'b -> bool) -> merge:('b -> 'b -> 'b) -> ('a, 'b) elt -> ('a, 'b) elt list -> ('a, 'b) elt list
val append_disjoint : is_equal:('b -> 'b -> bool) -> merge:('b -> 'b -> 'b) -> ('a, 'b) elt list -> ('a, 'b) elt list -> ('a, 'b) elt list
val cons : is_equal:('b -> 'b -> bool) -> merge:('b -> 'b -> 'b) -> unique:bool -> disjoint:bool -> ('a, 'b) elt -> ('a, 'b) elt list -> ('a, 'b) elt list
val append : is_equal:('b -> 'b -> bool) -> merge:('b -> 'b -> 'b) -> unique:bool -> disjoint:bool -> ('a, 'b) elt list -> ('a, 'b) elt list -> ('a, 'b) elt list
val make_unique : is_equal:('b -> 'b -> bool) -> merge:('b -> 'b -> 'b) -> disjoint:bool -> ('a, 'b) elt list -> ('a, 'b) elt list
val guard : cudd:'a Cudd.Man.t -> ('a, 'b) t -> 'a Cudd.Bdd.t