anchor.diff:  int_deref([], Acc) -> Acc;
   int_deref([E|T], Acc) ->
       int_deref(T, (Acc bsl 8) + E).
  -
  --type addr() :: integer().
  --type ptr() :: {addr(), nonempty_string()}.
   
   -spec free(ptr()) -> 'ok'.
   free({Addr, _}) ->
  
positive.code:     end.
  
  %% pointer arithmetic
  -spec dereference(ptr()) -> ptr() | integer() | float() | list() | {string(), integer()}.
  dereference(Pointer) ->
      {Address, ModuleType} = Pointer,
      [ModuleName, Type] = string:tokens(ModuleType, "."),
  
negative.code: 		["*", "double", _, _] ->
  		    double_deref(Address);
  		_ ->
  		    {error, unknown_builtin_type}
  	    end;
  	_ ->
  	    {error, unknown_type}
      end.
  
  int_deref(Addr, Size, Sign) ->
  