anchor.diff:      #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;
  
positive.code: %%% @author Sebastien Serre <ssbx@supercastframework.org>
  %%% @copyright (C) 2015, Sebastien Serre
  %%% @doc
  %%% WORK IN PROGRESS
  %%% @end
  %%%-----------------------------------------------------------------------------
  -module(supercast_channel).
  -behaviour(gen_server).
  
negative.code:         {stop, Reason} ->
              {stop, Reason};
          {ok, Opaque} ->
              {ok, #state{channel=Channel,module=Module,opaque=Opaque}}
      end.
  
  %%------------------------------------------------------------------------------
  