anchor.diff:  
   %% @spec encoder([encoder_option()]) -> function()
   %% @doc Create an encoder/1 with the given options.
  +%% @type encoder_option() = handler_option() | utf8_option()
  +%% @type utf8_option() = boolean(). Emit unicode as utf8 (default - false)
   encoder(Options) ->
       State = parse_encoder_options(Options, #encoder{}),
       fun (O) -> json_encode(O, State) end.
  
positive.code:      {[-123, <<"foo">>, obj_from_list([{<<"bar">>, []}]), null],
        "[-123,\"foo\",{\"bar\":[]},null]"}
      ].
  
negative.code: %% @type json_term() = json_string() | json_number() | json_array() |
  %%                     json_object()
  
  -record(encoder, {handler=null,
                    utf8=false}).
  
  -record(decoder, {object_hook=null,
                    offset=0,
  