anchor.diff:           code_change/3]).
   
   
  --type server() :: native | pid().
   -type mode() :: instant | queue.
  --opaque timeserver() :: server().
  +-opaque timeserver() :: native | pid().
   -export_type([timeserver/0]).
   -compile({no_auto_import, [error/1]}).
   -import(erlang, [error/1]).
  
positive.code: 
  
  %% Return the number of milliseconds that passed
  -spec step(server()) -> pos_integer().
  step(Server) ->
      case Server of
          native -> error(badarg);
  
negative.code: 
  %% api functions
  -export([start_link/1,
           native/0,
           send_after/4,
           start_timer/4,
           cancel/2,
  