sig
  type ('record, 'field) t =
    ('record, 'field) Fieldslib.Field.t = {
    name : string;
    setter : ('record -> 'field -> unit) option;
    getter : 'record -> 'field;
    fset : 'record -> 'field -> 'record;
  }
  val name : ('a, 'b) t -> string
  val get : ('r, 'a) t -> '-> 'a
  val fset : ('r, 'a) t -> '-> '-> 'r
  val setter : ('r, 'a) t -> ('-> '-> unit) option
  type ('record, 'result) user =
    ('record, 'result) Fieldslib.Field.user = {
    f : 'field. ('record, 'field) t -> 'result;
  }
  val ounit_tests : unit -> OUnit.test
end