anchor.diff:  -spec uniform_s(N :: pos_integer(), S :: emprng_state()) ->
         {pos_integer(), NewS :: emprng_state()}.
   
  +uniform_s(N, S) when is_integer(N), N >= 1 ->
  +    {Alg, AS} = S,
  +    {X, AS2} = Alg:uniform_s(N, AS),
  +    {X, {Alg, AS2}}.
   
  
positive.code: 
  -spec uniform() -> float().
  
  %% uniform/1: given an integer N >= 1,
  %% uniform/1 returns a random integer X where 1 =< X =< N,
  %% updating the state in the process dictionary.
  
  -spec uniform(N :: pos_integer()) -> pos_integer().
  
  %% uniform_s/1: given a state, uniform_s/1
  %% returns a random float X where 0.0 < X < 1.0,
  
negative.code: 
  -spec uniform_s(S :: emprng_state()) -> {float(), NewS :: emprng_state()}.
  
  uniform_s(S) ->
      {Alg, AS} = S,
      {X, AS2} = Alg:uniform_S(AS),
      {X, {Alg, AS2}}.
  
  %% uniform_s/2: given an integer N >= 1 and a state, uniform_s/2
  %% uniform_s/2 returns a random integer X where 1 =< X =< N,
  %% and a new state.
  