Module Condition.Bed

type tag = private int
module BDD : sig ... end
type !'a mtbdd = private
  1. | Terminal of tag * 'a
  2. | If of tag * int * 'a mtbdd * 'a mtbdd
module type Terminal = sig ... end
module type MTBDD = sig ... end
val map1 : (module MTBDD with type Terminal.t = 'a) -> (module MTBDD with type Terminal.t = 'res) -> ('a -> 'res) -> 'a mtbdd -> 'res mtbdd
val map2 : (module MTBDD with type Terminal.t = 'a) -> (module MTBDD with type Terminal.t = 'b) -> (module MTBDD with type Terminal.t = 'res) -> ('a -> 'b -> 'res) -> 'a mtbdd -> 'b mtbdd -> 'res mtbdd
val map3 : (module MTBDD with type Terminal.t = 'a) -> (module MTBDD with type Terminal.t = 'b) -> (module MTBDD with type Terminal.t = 'c) -> (module MTBDD with type Terminal.t = 'res) -> ('a -> 'b -> 'c -> 'res) -> 'a mtbdd -> 'b mtbdd -> 'c mtbdd -> 'res mtbdd
module MTBDD_Make (Terminal : Terminal) : sig ... end