Module Typerep.Field
Witness of a field, that is an item in a record type. The first parameter is the record type, the second is the type of the field. Example:
type t = { x : int ; y : string }
This type has two fields. for each of them we'll have a corresponding Field.t
val field_x : (t, int) Field.t val field_y : (t, string) Field.t
val label : ('a, 'b) t -> string
The name of the field as it is given in the concrete syntax Examples:
{ x : int; (* "x" *) foo : string; (* "foo" *) bar : float; (* "bar" *) }
val index : ('a, 'b) t -> int
The 0-based index of the field in the list of all fields for this record type. Example:
type t = { x : int; (* 0 *) foo : string; (* 1 *) bar : string; (* 2 *) }
val get : ('record, 'field) t -> 'record -> 'field
Field accessors. This corresponds to the dot operation.
Field.get bar_field t
returns the fieldbar
of the record valuet
, just the same ast.bar
val is_mutable : ('a, 'b) t -> bool
return whether the field is mutable, i.e. whether its declaration is prefixed with the keyword
mutable
val tyid : ('a, 'field) t -> 'field Typerep_lib.Typename.t
return the type_name of the arguments. Might be used to perform some lookup based on it
val internal_use_only : ('a, 'b) Field_internal.t -> ('a, 'b) t