anchor.diff:  %%%===================================================================
   
   
  +count_brackets([], 
  +	       #pst { 
  +		  buffer = [], 
  +		  balance = start } = PSt)  ->
  +    { incomplete, PSt#pst {}};
  +
  +count_brackets([], 
  +	       #pst { 
  +		  buffer = Buffer, 
  +		  balance = start } = PSt)  ->
  +    count_brackets(Buffer, 
  +		   PSt#pst { 
  +		     buffer = [], 
  +		     balance = start } );
   count_brackets([${ | Rem], 
   	       #pst { 
   		  buffer = Buffer, 
  
positive.code: 
      { complete, lists:reverse(Buffer), 
        PSt#pst {
  	buffer = lists:reverse(Rem),
  	balance = start
         } 
      };
  
negative.code:     ?debug("~p:handle_info(data): Data: ~p", [ ?MODULE, Data]),
      ?debug("~p:handle_info(data): From: ~p:~p ", [ ?MODULE, IP, Port]),
  
      case extract_json(Data, PST) of
  	{ [], NPST } ->
  	    ?debug("~p:handle_info(data incomplete)", [ ?MODULE]),
  	    inet:setopts(Sock, [{active, once}]),
  	    {noreply, State#st { pst = NPST} };
  
  	{ JSONElements, NPST } ->
  	    ?debug("~p:handle_info(data complete): Processed: ~p", [ ?MODULE, JSONElements]),
  	    FromPid = self(),
  	    spawn(fun() -> [ Mod:Fun(FromPid, IP, Port, 
  				     data, SingleElem, Arg) || SingleElem <- JSONElements ]
  		  end),
  	    inet:setopts(Sock, [ { active, once } ]),
  	    {noreply, State#st { pst = NPST} }
      end;
  