anchor.diff:  %% This depends on the algorithm handler function
   -type alg_seed() :: any().
   %% This is the algorithm handler function within this module
  --type alg_handler() :: #alg{}.
  +-type alg_handler() :: #{type      => alg(),
  +			 uniform   => fun(),
  +			 uniform_n => fun()}.
  +
   %% Internal state
   -type state() :: {alg_handler(), alg_seed()}.
   
  
positive.code: %% and a new state.
  
  -spec uniform_s(state()) -> {float(), NewS :: state()}.
  uniform_s({Alg = #alg{uniform=Uniform}, AS0}) ->
      {X, AS} = Uniform(AS0),
      {X, {Alg, AS}}.
  
  
negative.code: 
  -spec uniform_s(N :: pos_integer(), state()) ->
  		       {pos_integer(), NewS :: state()}.
  uniform_s(N, {Alg = #{uniform_n:=Uniform}, AS0})
    when is_integer(N), N >= 1 ->
      {X, AS} = Uniform(N, AS0),
      {X, {Alg, AS}}.
  