anchor.diff:  %% @todo Add init for exclusive pins
   %% @end
   -spec start_link(pin(), pin_direction()) ->
  -                        {'ok', pid()} | 'ignore' | {'error', term()}.
  +                    {'ok', pid()} | 'ignore' | {'error', term()}.
   start_link(Pin, Direction) ->
  -    case gproc:lookup_local_name(pname(Pin)) of
  -        undefined ->
  -            gen_server:start_link(?MODULE, [Pin, Direction], []);
  -        _Pid ->
  -            {error, pin_already_initialised}
  -    end.
  +  case gproc:lookup_local_name(pname(Pin)) of
  +    undefined ->
  +      gen_server:start_link(?MODULE, [Pin, Direction], []);
  +    _Pid ->
  +      {error, pin_already_initialised}
  +  end.
   
   
   %% @doc release/1 stops the pin process and frees resources on the
  
positive.code: %% @todo Specify the errors more precisely.
  %% @end
  -spec set_int(pin(), interrupt_condition()) -> 'ok' | {'error', Error}
                                                     when Error :: 'wrong_condition'
                                                                 | term().
  set_int(Pin, Condition) when Condition == rising;
                               Condition == falling;
                               Condition == both;
                               Condition == none ->
      Requestor = self(),
      call_existing(Pin, {set_int, Condition, Requestor});
  set_int(_Pin, _Condition) ->
      {error, wrong_condition}.
  
  %% @doc from_port/2 should not be called from the outside!
  %% It is used to transform the messages from a port into a message
  
negative.code: %% handle the messages in handle_info/2.
  %% @end
  from_port(Pin, Msg) ->
    call_existing(Pin, {from_port, Msg}).
  
  
  
  call_existing(Pin, Msg) ->
    case gproc:lookup_local_name(pname(Pin)) of
      undefined ->
        {error, pin_not_present};
      Pid ->
        gen_server:call(Pid, Msg)
    end.
  
  
  
  