anchor.diff:  %%% @author Sebastien Serre <ssbx@supercastframework.org>
   %%% @copyright (C) 2015, Sebastien Serre
   %%% @doc
  -%%% WORK IN PROGRESS
   %%% @end
  +%%%
   %%%-----------------------------------------------------------------------------
   -module(supercast_channel).
   -behaviour(gen_server).
  
positive.code:         {stop, Reason} ->
              {stop, Reason};
          {ok, Opaque} ->
              {ok, #state{module=Module,opaque=Opaque}}
      end.
  
  %%------------------------------------------------------------------------------
  
negative.code:     #state{channel=Name,module=Mod,opaque=Opaque} = State) ->
      case Mod:channel_join(Name, CState, Opaque) of
          {ok, Opaque2} ->
              ?traceInfo("trace", Opaque2),
              supercast_proc:join_accept(Ref),
              {noreply, State#state{opaque=Opaque2}};
          {ok, Pdus, Opaque2} ->
              ?traceInfo("trace", Opaque2),
              supercast_proc:join_accept(Ref, Pdus),
              {noreply, State#state{opaque=Opaque2}};
          {refuse, Opaque2} ->
              ?traceInfo("trace", Opaque2),
              supercast_proc:join_refuse(Ref),
              {noreply, State#state{opaque=Opaque2}};
          {stop, Reason} ->
              ?traceInfo("trace", Reason),
              supercast_proc:join_refuse(Ref),
              {stop, Reason};
          R ->
              ?traceInfo("trace", R),
              supercast_proc:join_refuse(Ref),
              {stop, {bad_return, R}, State}
      end;
  