Module SymbLocksDomain.LockingPattern

include sig ... end
type t = Exp.t * Exp.t * Exp.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 : (Exp.t * Exp.t * Exp.t) -> string
val pretty : unit -> (Exp.t * Exp.t * Exp.t) -> Printable.Pretty.doc
val printXml : 'a BatInnerIO.output -> (Exp.t * Exp.t * Exp.t) -> unit
val to_yojson : (Exp.t * Exp.t * Exp.t) -> [> `Assoc of (string * Yojson.Safe.t) list ]
val arbitrary : unit -> (Exp.t * Exp.t * Exp.t) QCheck.arbitrary
val name : unit -> string
type ee =
  1. | EVar of GoblintCil.varinfo
  2. | EAddr
  3. | EDeref
  4. | EField of GoblintCil.fieldinfo
  5. | EIndex of GoblintCil.exp
val ee_equal : ee -> ee -> bool
val ee_to_str : ee -> string
val ees_to_str : ee list -> string
exception NotSimpleEnough
val toEl : GoblintCil.exp -> ee list
val fromEl : ee list -> GoblintCil.exp -> GoblintCil.exp
val from_exps : GoblintCil.exp -> GoblintCil.exp -> t option