functor
  (X : sig
         val kf : Cil_types.kernel_function
         val lv : Cil_types.lval
         val locs : (Mem_lvalue.found * Cil_types.stmt) list
       end->
  sig
    type t = LatticeDirty.t = Bottom | Dirty | Known
    val join : t -> t -> t
    val bottom : t
    val is_included : t -> t -> bool
    val join_and_is_included : t -> t -> t * bool
    val pretty : Format.formatter -> t -> unit
    val dirties : Cil_types.stmt -> bool
    val reads : Cil_datatype.Stmt.t -> bool
    val writes : Cil_datatype.Stmt.t -> bool
    val transfer_stmt : Cil_datatype.Stmt.t -> t -> (Cil_types.stmt * t) list
    val init : (Cil_types.stmt * t) list
  end