type field = GoblintCil.fieldinfoval name : unit -> stringval from_string : string -> tval to_string : t -> string optionval short_offs :
([< `Field of GoblintCil.fieldinfo * 'a
| `Index of IndexDomain.t * 'a
| `NoOffset ] as 'a) ->
stringval short_addr :
(GoblintCil.varinfo
* ([< `Field of GoblintCil.fieldinfo * 'a
| `Index of IndexDomain.t * 'a
| `NoOffset ] as 'a)) ->
stringval pretty : unit -> t -> Goblint_lib__Printable.Pretty.docval to_yojson : t -> [> `String of string ]exception Type_offset of GoblintCil.typ * stringval type_offset :
GoblintCil.typ ->
([ `Field of GoblintCil.fieldinfo * 'a
| `Index of IndexDomain.t * 'a
| `NoOffset ] as 'a) ->
GoblintCil.typval get_type_addr :
(GoblintCil.varinfo
* ([ `Field of GoblintCil.fieldinfo * 'a
| `Index of IndexDomain.t * 'a
| `NoOffset ] as 'a)) ->
GoblintCil.typval get_type : t -> GoblintCil.typval is_zero_offset :
(GoblintCil.fieldinfo, IndexDomain.t) Goblint_lib__Lval.offs ->
boolval to_exp : (idx -> GoblintCil.exp) -> t -> GoblintCil.expval add_offsets :
([< `Field of 'b * 'a | `Index of 'c * 'a | `NoOffset ] as 'a) ->
([> `Field of 'b * 'd | `Index of 'c * 'd ] as 'd) ->
'dval add_offset :
t ->
(GoblintCil.fieldinfo, IndexDomain.t) Goblint_lib__Lval.offs ->
tval remove_offset :
([< `Field of 'b * 'a | `Index of 'c * 'a | `NoOffset NoOffset ] as 'a) ->
[> `Field of 'b * 'd | `Index of 'c * 'd | `NoOffset ] as 'dval arbitrary : unit -> t QCheck.arbitrarymodule Offs : sig ... endval is_definite : t -> boolval join_string_ptr : 'a option -> 'a option -> 'a optionval meet_string_ptr : 'a option -> 'a option -> 'a optionval merge : [ `Join | `Meet | `Narrow | `Widen ] -> t -> t -> tval pretty_diff : unit -> (t * t) -> GoblintCil.Pretty.doc