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