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_perm
type (!'record, !'field) readonly_t = ([ `Read ], 'record, 'field) t_with_perm
val fset : ([> `Set_and_create ], 'r, 'a) t_with_perm -> 'r -> 'a -> 'r
val setter :
([> `Set_and_create ], 'r, 'a) t_with_perm ->
('r -> 'a -> unit) option
val map :
([> `Set_and_create ], 'r, 'a) t_with_perm ->
'r ->
f:('a -> 'a) ->
'r
val updater :
([> `Set_and_create ], 'r, 'a) t_with_perm ->
('r -> f:('a -> 'a) -> unit) option
type (!'perm, !'record, !'result) user = {
f : 'field. ('perm, 'record, 'field) t_with_perm -> 'result;
}