Module Spec.G

include sig ... end
val equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Ppx_deriving_runtime.int
val hash : t -> int
val tag : 'a -> 'b
val arbitrary : unit -> 'a
val pretty : unit -> t -> Printable.Pretty.doc
val show : [< `Bot | `Lifted1 of Lattice.Prod3(Locked)(Unlocked)(MultiThread).t | `Lifted2 of Lattice.Lift2(BoolDomain.MayBool)(NodeSet).t | `Top ] -> string
val relift : [< `Bot | `Lifted1 of Lattice.Prod3(Locked)(Unlocked)(MultiThread).t | `Lifted2 of Lattice.Lift2(BoolDomain.MayBool)(NodeSet).t | `Top Lifted1 Lifted2 ] as 'a -> 'a
val name : unit -> string
val printXml : 'a BatInnerIO.output -> [< `Bot | `Lifted1 of Lattice.Prod3(Locked)(Unlocked)(MultiThread).t | `Lifted2 of Lattice.Lift2(BoolDomain.MayBool)(NodeSet).t | `Top ] -> unit
val to_yojson : [< `Bot | `Lifted1 of Lattice.Prod3(Locked)(Unlocked)(MultiThread).t | `Lifted2 of Lattice.Lift2(BoolDomain.MayBool)(NodeSet).t | `Top ] -> Yojson.Safe.t
val bot : unit -> [> `Bot ]
val is_bot : [> `Bot ] -> bool
val top : unit -> [> `Top ]
val is_top : [> `Top ] -> bool
val pretty_diff : unit -> (t * t) -> Lattice.Pretty.doc
val join : [> `Bot | `Lifted1 of Lattice.Prod3(Locked)(Unlocked)(MultiThread).t | `Lifted2 of Lattice.Lift2(BoolDomain.MayBool)(NodeSet).t | `Top ] as 'a -> 'a -> 'a
val meet : [> `Bot | `Lifted1 of Lattice.Prod3(Locked)(Unlocked)(MultiThread).t | `Lifted2 of Lattice.Lift2(BoolDomain.MayBool)(NodeSet).t | `Top ] as 'a -> 'a -> 'a
val narrow : [> `Bot | `Lifted1 of Lattice.Prod3(Locked)(Unlocked)(MultiThread).t | `Lifted2 of Lattice.Lift2(BoolDomain.MayBool)(NodeSet).t | `Top ] as 'a -> 'a -> 'a
val node : [> `Bot | `Lifted1 of Locked.t * Unlocked.t * MultiThread.t ] -> Locked.t * Unlocked.t * MultiThread.t
val lock : [> `Bot | `Lifted2 of [> `Lifted1 of BoolDomain.MayBool.t ] ] -> BoolDomain.MayBool.t
val threadcreate : [> `Bot | `Lifted2 of [> `Lifted2 of NodeSet.t ] ] -> NodeSet.t
val update : [> `Bot | `Lifted2 of [> `Lifted2 of NodeSet.t ] ] -> NodeSet.t
val create_node : 'a -> [> `Lifted1 of 'a ]
val create_lock : 'a -> [> `Lifted2 of [> `Lifted1 of 'a ] ]
val create_threadcreate : 'a -> [> `Lifted2 of [> `Lifted2 of 'a ] ]
val create_update : 'a -> [> `Lifted2 of [> `Lifted2 of 'a ] ]