Module WideningDelay.Dom

Parameters

module Base : Lattice.S

Signature

module Chain : sig ... end
include sig ... end
val expand_fst : bool
val expand_snd : bool
type t = Base.t * Chain.t
val equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Ppx_deriving_runtime.int
val hash : t -> int
val relift : t -> t
val tag : 'a -> 'b
val show : (Base.t * Chain.t) -> string
val name : unit -> string
val pretty : unit -> (Base.t * Chain.t) -> Printable.Pretty.doc
val printXml : 'a BatInnerIO.output -> (Base.t * Chain.t) -> unit
val to_yojson : (Base.t * Chain.t) -> [> `Assoc of (string * Yojson.Safe.t) list ]
val arbitrary : unit -> (Base.t * Chain.t) QCheck.arbitrary
val lift : 'a -> 'b * int
val unlift : ('a * 'b) -> 'c
val bot : unit -> Base.t * int
val is_bot : (Base.t * 'a) -> bool
val top : unit -> Base.t * int
val is_top : (Base.t * 'a) -> bool
val leq : (Base.t * 'a) -> (Base.t * 'b) -> bool
val join : (Base.t * 'a) -> (Base.t * 'b) -> Base.t * 'c

All operations keep maximal counter.

val meet : (Base.t * 'a) -> (Base.t * 'b) -> Base.t * 'c
val widen : (Base.t * int) -> (Base.t * int) -> Base.t * int
val narrow : (Base.t * 'a) -> (Base.t * 'b) -> Base.t * 'c
val pretty_diff : unit -> ((Base.t * 'a) * (Base.t * 'b)) -> Lattice.Pretty.doc