sig
  type r
  type t = r record
  val syntax : Syntax.t
  val of_json : json -> t
  val to_json : t -> json
  val default : t
  val has : (Data.Record.S.r, 'a) Data.Record.field -> t -> bool
  val get : (Data.Record.S.r, 'a) Data.Record.field -> t -> 'a
  val set : (Data.Record.S.r, 'a) Data.Record.field -> '-> t -> t
end