anchor.diff:  
   %% API
   -export([ add_schema/2
  +        , add_schema/3
           , del_schema/1
           , update_schema/2
           , update_schema/4
           , validate/2
  +        , validate/3
  +        , validate_with_schema/2
  +        , validate_with_schema/3
           ]).
   
   -export_type([ json_term/0
  
positive.code: %%
  %% Schema definitions are stored in the format which json parsing function
  %% `ParseFun' returns.
  -spec update_schema( Path          :: string()
                     , ParseFun      :: fun((binary()) -> json_term())
                     , ValidationFun :: fun((any()) -> boolean())
  
negative.code:   ValidationFun = fun jesse_schema_validator:is_json_object/1,
    MakeKeyFun    = fun(_) -> Key end,
    jesse_database:add_schema(Schema, ValidationFun, MakeKeyFun).
  
  %% @doc Equivalent to `add_schema/2', but `Schema' is a binary string, and
  %% the third agument is a parse function to convert the binary string to
  %% a supported internal representation of json.
  add_schema(Key, Schema, ParseFun) ->
    case try_parse(ParseFun, Schema) of
      {parse_error, _} = SError -> {error, {schema_error, SError}};
      ParsedSchema              -> add_schema(Key, ParsedSchema)
    end.
  
  
  %% @doc Deletes a schema definition from in-memory storage associated with
  %% the key `Key'.
  