sig
  type t
  type value
  type origin
  type loc
  val find :
    Abstract_domain.Valuation.t ->
    Cil_types.exp ->
    (Abstract_domain.Valuation.value, Abstract_domain.Valuation.origin)
    Eval.record_val Eval.or_top
  val fold :
    (Cil_types.exp ->
     (Abstract_domain.Valuation.value, Abstract_domain.Valuation.origin)
     Eval.record_val -> '-> 'a) ->
    Abstract_domain.Valuation.t -> '-> 'a
  val find_loc :
    Abstract_domain.Valuation.t ->
    Cil_types.lval ->
    Abstract_domain.Valuation.loc Eval.record_loc Eval.or_top
end