sig
module type S =
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.field -> t -> bool
val get : (Data.Record.S.r, 'a) Data.field -> t -> 'a
val set : (Data.Record.S.r, 'a) Data.field -> 'a -> t -> t
end
val signature :
page:Doc.page ->
name:string -> descr:Markdown.text -> unit -> 'a Data.signature
val field :
'r Data.signature ->
name:string ->
descr:Markdown.text -> ?default:'a -> 'a Data.data -> ('r, 'a) Data.field
val option :
'r Data.signature ->
name:string ->
descr:Markdown.text -> 'a Data.data -> ('r, 'a option) Data.field
val publish : 'a Data.signature -> (module Data.Record.S with type r = 'a)
end