anchor.diff:      io_lib:fwrite("\"~s\"", [V]);
   pp_json(V, _I) when is_integer(V) ->
       ["\"", integer_to_list(V), "\""];
  -pp_json({K,V,_}, I) ->
  +pp_json({K,V,_,_}, I) ->
       pp_json_(K, V, I);
   pp_json({K,V}, I) ->
       pp_json_(K, V, I).
  
positive.code: 			      orddict:store(Pfx, ImpData, Acc);
  			  [] ->
  			      %% error({cannot_import, F, no_such_module})
  			      Acc
  		      end;
  		  _Error ->
  		      %% error({cannot_import, F, Error})
  		      Acc
  	      end;
  	 (_, Acc) ->
  	      Acc
        end, orddict:new(), Data).
  
  mk_rpc_pair(InOut, N, Data, Imports) ->
      {_,_,_,I} = lists:keyfind(input, 1, InOut),
      {_,_,_,O} = lists:keyfind(output, 1, InOut),
      {{request, {struct, [{"json-rpc", "2.0"},
  			 {"method", binary_to_list(N)},
  			 {"id", ""},
  			 {"params", {struct, rpc_params(I, Data, Imports)}}]}},
       {reply, {struct, [{"json-rpc", "2.0"},
  		       {"id", ""},
  		       {"result", {struct, rpc_params(O, Data, Imports)}}]}}}.
  
  rpc_params([{uses,_,G,_}|T], Data, Imports) ->
      {Where, GrpName} = case re:split(G, <<":">>) of
  
negative.code: markdown([]) ->
      [].
  
  markdown_rpcs([{Not, {notification, Descr, Msg}} | T]) ->
      ["#### Notification: ", Not, "\n",
       "```json\n", pp_json(Msg), "\n```\n\n",
       case Descr of
  	 "" -> "";
  	 _ ->
  	     [Descr, "\n\n"]
       end,
       markdown_descriptions(Msg), "\n\n" | markdown_rpcs(T)];
  markdown_rpcs([{RPC, {Descr, {request, Req}, {reply, Rep}}} | T]) ->
      ["### RPC: ", RPC, "\n\n",
       "#### Request\n", "```json\n", pp_json(Req), "\n```\n\n",
       case Descr of
  	 "" -> "";
  	 _ ->
  	     [Descr, "\n\n"]
       end,
       markdown_descriptions(Req), "\n\n",
       "#### Reply\n", "```json\n", pp_json(Rep), "\n```\n\n",
       markdown_descriptions(Rep), "\n\n" | markdown_rpcs(T)];
  