type (!'perm, !'record, !'field) t_with_perm = | Field of ('perm, 'record, 'field) For_generated_code.t
type (!'record, !'field) t =
([ `Read | `Set_and_create ], 'record, 'field) t_with_permtype (!'record, !'field) readonly_t = ([ `Read ], 'record, 'field) t_with_permval fset : ([> `Set_and_create ], 'r, 'a) t_with_perm -> 'r -> 'a -> 'rval setter :
([> `Set_and_create ], 'r, 'a) t_with_perm ->
('r -> 'a -> unit) optionval map :
([> `Set_and_create ], 'r, 'a) t_with_perm ->
'r ->
f:('a -> 'a) ->
'rval updater :
([> `Set_and_create ], 'r, 'a) t_with_perm ->
('r -> f:('a -> 'a) -> unit) optiontype (!'perm, !'record, !'result) user = {f : 'field. ('perm, 'record, 'field) t_with_perm -> 'result;
}