anchor.diff:  -type erl_local_pid_plain() :: pid() | reg_name().
   -type erl_local_pid_with_cookie() :: {erl_local_pid_plain(), c, cookie()}.
   -type erl_local_pid() :: erl_local_pid_plain() | erl_local_pid_with_cookie().
  --type erl_pid_plain() :: erl_local_pid_plain() | {reg_name(), node()}. % port() | 
  -
  +-type erl_pid_plain() :: erl_local_pid_plain() | {reg_name(), node()}. % port()
   
   -ifdef(TCP_LAYER).
   -type mypid_plain() :: {inet:ip_address(), integer(), erl_pid_plain()}.
  
positive.code: -ifdef(BUILTIN).
  -type mypid_plain() :: erl_pid_plain().
  -endif.
  
  
  %% -type erl_pid_with_cookie() :: {erl_pid_plain(), c, cookie()}.
  %% -type erl_pid() :: erl_pid_plain() | erl_pid_with_cookie().
  
negative.code: 
  %% @author Thorsten Schuett <schuett@zib.de>
  %% @doc    Message Sending.
  %%
  %%  This module allows to configure Scalaris for using Distributed Erlang
  %%  (if the macro BUILTIN is defined) or TCP (macro TCP_LAYER) for inter-node
  %%  communication and wraps message sending and process identifiers.
  %%
  %%  Messages consist of a tuple of which the first element is the message's
  %%  tag, i.e. an atom. Process identifiers depend on the messaging back-end
  %%  being used but can also wrap up an arbitrary cookie that can be used to
  %%  tell messages with the same tag apart, e.g. when they are used for
  %%  different purposes.
  %%
  %%  Sending messages to so-tagged process identifiers works seamlessly, e.g.
  %%  a server receiving message {tag, SourcePid} can reply with
  %%  comm:send(SourcePid, {tag_response}). On the receiving side (a client),
  %%  a message of the form {Message, Cookie} will then be received, e.g.
  %%  {{tag_response}, Cookie}. Pids with cookies can be created using
  %%  this_with_cookie/1.
  %% @end
  %% @version $Id$
  -module(comm).
  -author('schuett@zib.de').
  -vsn('$Id$').
  
  -include("transstore/trecords.hrl").
  -include("scalaris.hrl").
  
  %% Sending messages
  -export([send/2, send_local/2, send_local_after/3, send_to_group_member/3]).
  %% Pid manipulation
  -export([make_global/1, make_local/1]).
  -export([this/0, get/2, this_with_cookie/1, self_with_cookie/1]).
  -export([is_valid/1, is_local/1]).
  %% Message manipulation
  -export([get_msg_tag/1]).
  
  -ifdef(with_export_type_support).
  -export_type([message/0, message_tag/0, mypid/0, erl_local_pid/0]).
  