anchor.diff:  subpaths(Path) ->
   	{Last, SubPaths} = lists:foldl(fun
   		(El, {null, Paths})->
  -			{El, Paths};
  +			{[El], Paths};
   		(El, {Curr, Paths})->
  -			{<< El/bits, $., Curr/bits>>, [Curr |Paths]}
  +			{[El |Curr], [Curr |Paths]}
   		end,
   		{null, []},
  -		lists:reverse(binary:split(Path, <<".">>, [global]))
  +		lists:reverse(Path)
   	),
   	[Last |SubPaths].
   
  
positive.code: 	{reply, ok, State}.
  
  handle_cast({send, From, Topic, Message}, State) ->
  	[send_event(Message, From, Rec)|| Rec <- ets:lookup(?MODULE, Topic)],
  	{noreply, State};
  handle_cast(_Msg, State) ->
  	{noreply, State}.
  
  handle_info({'DOWN', Ref, _Type, Subscriber, _Exit}, #{ subscribers := Subs } = State) ->
  	ets:select_delete(?MODULE, [{{'_',Subscriber},[],[true]}]),
  	{noreply, State#{ subscribers := Subs -- [{Subscriber, Ref}] }};
  handle_info(_Info, State) ->
  	{noreply, State}.
  
negative.code: %% Internal Function Definitions
  %% ------------------------------------------------------------------
  
  send_event(Message, From, Topic, {Subscriber, Fun}) ->
  	Fun(Subscriber, From, {Topic, Message}),
  	ok;
  send_event(Message, From, Topic, Subscriber) ->
  	Subscriber ! {hot_proxy_event, From, {Topic, Message}},
  	ok.
  
  