anchor.diff:  
   -opaque(state). %% Implementation state
   
  +-opaque(alg_seed).  %% Algorithm dependent state
  +
   %% This depends on the algorithm handler function
  --type alg_state() :: any().
  +-type alg_seed() :: any().
   %% This is the algorithm handler function within this module
   -type alg_handler() :: #alg{}.
   %% Internal state
  --type state() :: {alg_handler(), alg_state()}.
  +-type state() :: {alg_handler(), alg_seed()}.
   
   -type alg() :: as183 | exs64 | exsplus | exs1024 | sfmt | tinymt.
   
  
positive.code: -spec seed0(alg()) -> state().
  
  seed0(Alg) ->
      seed(Alg, {3172, 9814, 20125}).
  
  %% seed/0: seeds RNG with default (fixed) state values and the algorithm handler
  %% in the process dictionary, and returns the old state.
  
negative.code: %% NOTE: this module will replace OTP random module
  -module(random).
  
  -export([seed0/0,
  	 %% New functions
  	 seed0/1, make_seed/1, make_seed/2, export_seed/0, export_seed/1,
           uniform/0, uniform/1, uniform_s/1, uniform_s/2]).
  
  -export([seed/0, seed/1, seed/3]). %% Deprecate ?
  
  -define(DEFAULT_ALG_HANDLER, as183).
  -define(SEED_DICT, random_seed).
  