anchor.diff:  rand_plugin_uniform(Max, State) ->
       {bytes_to_integer(strong_rand_range(Max)) + 1, State}.
   
  --dialyzer({no_improper_lists, rand_cache_plugin_next/1}).
  -rand_cache_plugin_next([CacheSize|<<>>]) ->
  -    rand_cache_plugin_next([CacheSize|strong_rand_bytes(CacheSize)]);
  -rand_cache_plugin_next([CacheSize|<<I:?CRYPTO_CACHE_BITS,Cache/binary>>]) ->
  -    {I, [CacheSize|Cache]}.
  +rand_cache_plugin_next({CacheBits, CacheSize, <<>>}) ->
  +    rand_cache_plugin_next(
  +      {CacheBits, CacheSize, strong_rand_bytes(CacheSize)});
  +rand_cache_plugin_next({CacheBits, CacheSize, Cache}) ->
  +    <<I:CacheBits, NewCache/binary>> = Cache,
  +    {I, {CacheBits, CacheSize, NewCache}}.
   
   strong_rand_range(Range) when is_integer(Range), Range > 0 ->
       BinRange = int_to_bin(Range),
  
positive.code:                 Bytes
          end,
      {#{ type => crypto_cache,
          bits => ?CRYPTO_CACHE_BITS,
          next => fun ?MODULE:rand_cache_plugin_next/1},
       [CacheSize|<<>>]}.
  
  rand_plugin_next(Seed) ->
      {bytes_to_integer(strong_rand_range(1 bsl 64)), Seed}.
  
negative.code: rand_seed_s() ->
      rand_seed_alg_s(?MODULE).
  
  rand_seed_alg(Alg) ->
      rand:seed(rand_seed_alg_s(Alg)).
  
  -define(CRYPTO_CACHE_BITS, 56).
  rand_seed_alg_s(?MODULE) ->
      {#{ type => ?MODULE,
          bits => 64,
  