anchor.diff:           get_channel/1,
            get_swarm_id/1]).
   
  --opaque channel() :: {channel, channel_option()}.
  --opaque channel_option() :: 0..16#ffffffff.
  --export_type([channel/0, channel_option/0]).
  +-opaque channel() :: 0..16#ffffffff.
  +-export_type([channel/0]).
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% api
  
positive.code: %% @end
  
  -spec where_is(channel()) -> {ok, pid()} | {error, any()}.
  where_is(Channel = {channel, _}) ->
      case gproc:lookup_local_name(Channel) of
          undefined -> {error, ppspp_channel_not_found};
          Pid -> {ok, Pid}
      end.
  
negative.code: %% @end
  -spec release(channel()) -> ok.
  release(Channel) ->
      case gproc:unreg({n,l, {?MODULE, Channel}}) of
          true -> ok;
          _ -> {error, ppspp_channel_free_unassigned_channel}
      end.
  