anchor.diff:  json_rpc(YangFile) ->
       yang_json:json_rpc(YangFile).
   
  --spec check_type(any(), type()) -> boolean().
  -%% @spec check_type(Value, Type) -> boolean()
  +-spec check_type(any(), type()) -> {true, any()} | false.
  +%% @spec check_type(Value, Type) -> {true, ConvertedValue} | false
   %% Check Value against a YANG type definition.
   %%
   %% The "types" object, array and untyped are not actually YANG types, but used in the
  
positive.code: check_type(X, {type,_,<<"uint", _/binary>> = T,_}) when is_integer(X) ->
      check_uint_type(X, T);
  check_type(X, {type,_,<<"uint", _/binary>> = T,_}) ->
      try check_uint_type(list_to_integer(binary_to_list(X)), T)
      catch
  	error:_ ->
  	    false
      end;
  check_type(_, _) ->
      %% TODO: cover all types
      true.
  
  check_int_type(N, T) when is_integer(N) ->
      if 	T == <<"uint8">>, 08 =< N, N =< 255 -> true;
  	T == <<"uint16">>, 0 =< N, N =< 65535 -> true;
  	T == <<"uint32">>, 0 =< N, N =< 4294967295 -> true;
  	T == <<"uint64">>, 0 =< N, N =< 18446744073709551615 -> true;
  	true -> false
      end.
  
  check_uint_type(N, T) when is_integer(N) ->
      if T == <<"uint8">>, 08 =< N, N =< 255 -> true;
         T == <<"uint16">>, 0 =< N, N =< 65535 -> true;
         T == <<"uint32">>, 0 =< N, N =< 4294967295 -> true;
         T == <<"uint64">>, 0 =< N, N =< 18446744073709551615 -> true;
         true -> false
      end.
  
  
  get_value(I) ->
  
negative.code: check_type(X, {type,_,<<"int", _/binary>> = T,_}) when is_integer(X) ->
      check_int_type(X, T);
  check_type(X, {type,_,<<"int", _/binary>> = T,_}) ->
      try check_int_type(list_to_integer(to_list(X)), T)
      catch
  	error:_ ->
  	    false
  