anchor.diff:  
   -define(SERVER, ?MODULE).
   
  --record(state, {cache}).
  +-record(state, {}).
   
   %%%===================================================================
   %%% API
   %%%===================================================================
  --spec(get() ->
  -  {ok, [#device_state{}]} | {error, string()}).
  -get() ->
  -  gen_server:call(?SERVER, {get}).
  -
  --spec(get(DeviceId :: integer()) ->
  -  {ok, DeviceState :: #device_state{}} | {error, string()}).
  -get(DeviceId) ->
  -  gen_server:call(?SERVER, {get, DeviceId}).
  -
  --spec(link(DeviceState :: #device_state{}) ->
  -  {ok, DeviceState :: #device_state{}} | {error, string()}).
  -link(DeviceState) ->
  -  gen_server:call(?SERVER, {link, DeviceState}).
  -
  --spec(unlink(DeviceState :: #device_state{}) ->
  -  {ok, DeviceState :: #device_state{}} | {error, string()}).
  -unlink(DeviceState) ->
  -  gen_server:call(?SERVER, {unlink, DeviceState}).
  -
   -spec(execute(Command :: #command{}) ->
     {ok, Command :: #command{}} | {error, string()}).
   execute(Command) ->
  
positive.code:   {noreply, NewState :: #state{}, timeout() | hibernate} |
    {stop, Reason :: term(), Reply :: term(), NewState :: #state{}} |
    {stop, Reason :: term(), NewState :: #state{}}).
  handle_call({get}, _From, State) ->
    do_get_devices_state(State);
  handle_call({get, Id}, _From, State) when is_integer(Id) ->
    do_get_device_state_by_id(State, Id);
  handle_call({link, DeviceState}, _From, State) ->
    do_link_device_state(State, DeviceState);
  handle_call({unkink, DeviceState}, _From, State) ->
    do_unlink_device_state(State, DeviceState);
  handle_call({execute, Command}, _From, State) ->
    do_execute_command(State, Command);
  handle_call(_Request, _From, State) ->
  
negative.code: -export([start_link/0]).
  
  -export([
    execute/1
  ]).
  
  