anchor.diff:                                exit(normal);
                             false ->
                                 exit({handler_crashed, Name, Reason})
  -                      end
  +                      end;
  +                  {'DOWN', _MRef, process, Parent, Reason} ->
  +                      ?log_debug("Parent process exited with reason ~p", [Reason]),
  +                      exit(normal);
  +                  X ->
  +                      ?log_error("Got unexpected message: ~p", [X]),
  +                      exit(unexpected_message)
                 end
         end).
   
  
positive.code: %% limitations under the License.
  
  -module(ns_pubsub).
  
  -behaviour(gen_event).
  
  
negative.code: 
  
  subscribe_link(Name, Fun, State) ->
      Parent = self(),
      proc_lib:spawn(
        fun () ->
                erlang:monitor(process, Parent),
                Ref = make_ref(),
                ok = gen_event:add_sup_handler(Name, {?MODULE, Ref},
                                               #state{func=Fun, func_state=State}),
  