sig
  type 'a or_error = ('a, exn) Result.result
  type json = Yojson.Safe.json
  val make :
    to_yojson:('-> Maki_yojson.json) ->
    of_yojson:(Maki_yojson.json -> 'Maki_yojson.or_error) ->
    string -> 'Maki.Value.ops
  val make_err :
    to_yojson:('-> Maki_yojson.json) ->
    of_yojson:(Maki_yojson.json -> [ `Error of string | `Ok of 'a ]) ->
    string -> 'Maki.Value.ops
end