anchor.diff:  % API
   -export([start_link/1]).
   -export([raw/0]).
  --export([raw/1]).
   -export([g/0]).
  --export([g/1]).
   
   % Callbacks
   -export([init/1]).
  
positive.code:     Dev = grisp_device:default(?MODULE),
      gen_server:call(Dev#device.instance, Call).
  
  xyz(Slot, []) ->
      <<X/signed, Y/signed, Z/signed>>
          = grisp_spi:send_recv(Slot, <<?READ_REGISTER, ?XDATA>>, 2, 3),
      {X * 16, Y * 16, Z * 16};
  xyz(Slot, [high_precision]) ->
      <<
          XDATA_L,
          _:4, XDATA_H:4,
  
negative.code:     grisp_spi:send_recv(Slot, Req),
      {ok, #state{slot = Slot}}.
  
  handle_call(raw, _From, State) ->
      Raw = xyz(State#state.slot),
      {reply, {State#state.mode, Raw}, State}.
  
  handle_cast(Request, _State) -> error({unknown_cast, Request}).
  
  