anchor.diff:           change_handler/2, post_op/2]).
   -export([bp_set/3, bp_set_cond/3, bp_del/2]).
   -export([bp_step/1, bp_cont/1, bp_barrier/1]).
  +
  +-type bp_name() :: atom().
  +
  +-type bp_message() ::
  +          {'$gen_component', bp, breakpoint, step, pid()}
  +        | {'$gen_component', bp, breakpoint, cont}
  +        | {'$gen_component', bp, msg_in_bp_waiting, pid()}
  +        | {'$gen_component', bp, barrier}
  +        | {'$gen_component', bp, bp_set_cond, fun(), bp_name()}
  +        | {'$gen_component', bp, bp_set, comm:message_tag(), bp_name()}
  +        | {'$gen_component', bp, bp_del, bp_name()}.
  +
  +-type bp() ::
  +        {bp, MsgTag :: comm:message_tag(), bp_name()}
  +      | {bp_cond, Condition :: fun(), bp_name()}.
  +
  +-type bp_state() :: {[bp()],
  +                     boolean(),
  +                     [bp_message()],
  +                     boolean(),
  +                     pid() | unknown}.
  +
  +-type component_state() ::
  +        {Options :: list(), Slowest :: float(), bp_state()}.
   
   %% userdevguide-begin gen_component:behaviour
   -spec behaviour_info(atom()) -> [{atom(), arity()}] | undefined.
  
positive.code:               try_loop(Module, On, State, ComponentState)
      end.
  
  loop(Module, On, State, {_Options, _Slowest, _BPState} = ComponentState) ->
      ?CALLING_RECEIVE(Module),
      receive Msg -> loop(Module, On, Msg, State, ComponentState)
      end.
      
  loop(Module, On, ReceivedMsg, State, {_Options, _Slowest, _BPState} = ComponentState) ->
      case ReceivedMsg of
          %%%%%%%%%%%%%%%%%%%%
  
negative.code:             {ok, Pid}
      end.
  
  -spec start(module(), term(), list(), pid()) -> ok.
  start(Module, Args, Options, Supervisor) ->
      %?SPAWNED(Module),
      case util:app_get_env(verbose, false) of
  