sig
  type ('a, 'b, 'c) t
  val create :
    ?schema:('a, 'b) PropList.Schema.t ->
    ?name:PropList.name ->
    ?parse:(?context:'-> string -> 'c) ->
    ?print:('-> string) ->
    ?default:'->
    ?update:(?context:'-> '-> '-> 'c) ->
    ?help:(unit -> string) -> '-> ('a, 'c, 'b) PropList.Field.t
  val fset :
    PropList.Data.t ->
    ('a, 'b, 'c) PropList.Field.t -> ?context:'-> '-> unit
  val fget : PropList.Data.t -> ('a, 'b, 'c) PropList.Field.t -> 'b
  val fsets :
    PropList.Data.t ->
    ('a, 'b, 'c) PropList.Field.t -> ?context:'-> string -> unit
  val fgets : PropList.Data.t -> ('a, 'b, 'c) PropList.Field.t -> string
end