anchor.diff:             []
             ]).
   
  +%% this node or a dummy node
   g_node () ->
       oneof([node(),'dummy@nohost']).
   
  
positive.code: %% ---------------------------------------------------------------------------
  %% eqc generators
  
  g_auth () ->
      oneof([userlist,none]).
  
  g_userpass () ->
      oneof([{user,pass},
             {user,bad_password},
  
negative.code:            none % not passing auth data
            ]).
  
  %% query string generator
  g_qs () ->
      ?LET(Filter,g_filter(),
           ?LET(Page,g_page(),
                Filter ++ Page)).
  
  %% valid and invalid query string filters for ring page
  g_filter () ->
      oneof([[{filter,node}],
             [{filter,node},{q,g_node()}],
             [{q,g_node()}],
             [{filter,handoffs}],
             [{filter,fallbacks}],
             []
            ]).
  
  %% pagination data for ring page
  g_page () ->
      oneof([[{n,int()},{p,int()}],
             [{n,int()}],
  