sig
  exception NoSize
  val degree_of_type : Cil_types.typ -> int
  val alloc_for_type : Cil_types.typ -> int list
  val cells_in_type : Cil_types.typ -> Integer.t
  val type_of_cells : Cil_types.typ -> Cil_types.typ
  type usage =
      NotUsed
    | ByValue
    | ByAddress
    | ByReference
    | ByArray of int list
    | ByRefArray of int list
  val compute : unit -> unit
  val of_cvar : Cil_types.varinfo -> VarUsageRef.usage
  val of_formal : Cil_types.varinfo -> VarUsageRef.usage
  val of_lvar : Cil_types.logic_var -> VarUsageRef.usage
  val validated_lvar : Cil_types.logic_var -> bool
  val validated_cvar : Cil_types.varinfo -> bool
  val dump : unit -> unit
  val pretty : name:string -> Format.formatter -> VarUsageRef.usage -> unit
end