anchor.diff:  -type addr() :: integer().
   -type data() :: tuple().
   -type len() :: integer().
  +-type devname() :: string().
   
   %%%===================================================================
   %%% API
  
positive.code:     end,
      {reply, Reply, State};
  
  handle_call({call, i2c_write, Fd, Addr, Data, Len}, _From, State) ->
      case port_lib:sync_call_to_port(State, {i2c_write, Fd, Addr, Data, Len}) < 0 of
  	true ->
  
negative.code: -spec(i2c_init() -> fd() | {error, error_type}).
  i2c_init() ->
      gen_server:call(?MODULE, {call, i2c_init}).
  
  %% @doc Initialise the i2c devname device.
  %% @end
  -spec(i2c_init_name(devname()) -> fd() | {error, error_type}).
  i2c_init_name(Devname) ->
      gen_server:call(?MODULE, {call, i2c_init_name, Devname}).
  
  %% @doc write data into an i2c slave device.
  %% @end
  -spec(i2c_write(fd(), addr(), data(), len()) -> ok | {error, error_type}).
  i2c_write(Fd, Addr, Data, Len) ->
      gen_server:call(?MODULE, {call, i2c_write, Fd, Addr, Data, Len}).
  