sig
  type t
  type td = Ctrl | Addr | Data
  val make : ?a:bool -> ?d:bool -> ?c:bool -> unit -> PdgTypes.Dpd.t
  val top : PdgTypes.Dpd.t
  val bottom : PdgTypes.Dpd.t
  val is_addr : PdgTypes.Dpd.t -> bool
  val is_ctrl : PdgTypes.Dpd.t -> bool
  val is_data : PdgTypes.Dpd.t -> bool
  val adc_value : PdgTypes.Dpd.t -> bool * bool * bool
  val is_dpd : PdgTypes.Dpd.td -> PdgTypes.Dpd.t -> bool
  val is_bottom : PdgTypes.Dpd.t -> bool
  val is_included : PdgTypes.Dpd.t -> PdgTypes.Dpd.t -> bool
  val compare : PdgTypes.Dpd.t -> PdgTypes.Dpd.t -> int
  val equal : PdgTypes.Dpd.t -> PdgTypes.Dpd.t -> bool
  val combine : PdgTypes.Dpd.t -> PdgTypes.Dpd.t -> PdgTypes.Dpd.t
  val add : PdgTypes.Dpd.t -> PdgTypes.Dpd.td -> PdgTypes.Dpd.t
  val inter : PdgTypes.Dpd.t -> PdgTypes.Dpd.t -> PdgTypes.Dpd.t
  val intersect : PdgTypes.Dpd.t -> PdgTypes.Dpd.t -> bool
  val minus : PdgTypes.Dpd.t -> PdgTypes.Dpd.t -> PdgTypes.Dpd.t
  val pretty_td : Format.formatter -> PdgTypes.Dpd.td -> unit
  val pretty : Format.formatter -> PdgTypes.Dpd.t -> unit
end