anchor.diff:  
   %% HASHING
   %% ---------------------------
  -diff_pair(Sz) ->
  -    ?SUCHTHAT({X, Y}, {g_binary(Sz), g_binary(Sz)},
  -        X /= Y).
  +diff_pair() ->
  +    ?SUCHTHAT({X, Y}, {g_iodata(), g_iodata()},
  +        iolist_to_binary(X) /= iolist_to_binary(Y)).
   
   prop_crypto_hash_eq() ->
  -    ?FORALL(Sz, oneof([1, 128, 1024, 1024*4]),
  -    ?FORALL(X, g_binary(Sz),
  -        case is_binary(X) of
  +    ?FORALL(X, g_iodata(),
  +        case v_iodata(X) of
             true -> equals(enacl:hash(X), enacl:hash(X));
             false ->
               try
  
positive.code:               error:badarg -> true
              end
          end
      )).
  
  prop_crypto_hash_neq() ->
      ?FORALL(Sz, oneof([1, 128, 1024, 1024*4]),
      ?FORALL({X, Y}, diff_pair(Sz),
          enacl:hash(X) /= enacl:hash(Y)
      )).
  
  %% STRING COMPARISON
  %% -------------------------
  
negative.code:       end).
  
  prop_secretbox_failure_integrity() ->
      ?FORALL({Msg, Nonce, Key}, {g_iodata(), nonce(), secret_key()},
        begin
          CipherText = enacl:secretbox(Msg, Nonce, Key),
          Err = enacl:secretbox_open([<<"x">>, CipherText], Nonce, Key),
  