anchor.diff:  
   
   %random integer generator between Min and Max values
  +
  +-spec randInt (integer(), integer()) -> eqc_gen:gen(integer()).
   randInt (Min, Max) ->
   	eqc_gen:choose(Min,Max).
   
   %maybe its not very efficient
  +
  +-spec randFlt(float(), float()) -> eqc_gen:gen(float()).
   randFlt (Min, _) ->
       ?LET(Flt, eqc_gen:real(), Min + Flt).
   
  +%% candidate for removal
   propname() ->
       name().
   
  +
  +% candidate for removal
   name() ->
       eqc_gen:non_empty(eqc_gen:list(eqc_gen:choose($a,$z))).
   
  
positive.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% Natural numbers
  natural() ->
      eqc_gen:nat().
  
  positive() ->
      natural_gte(1).
  
  natural_gte(K) ->
      ?LET(N,natural(),N+K).
      
      
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% Number generators
  number() ->
      eqc_gen:oneof([eqc_gen:int(),eqc_gen:real()]).
  
  number_positive() ->
      ?SUCHTHAT(N, eqc_gen:oneof([eqc_gen:int(),eqc_gen:real()]), N>=0).
  
  number_mul(Mul) ->
      ?LET(N, integer(), Mul * N).
  
  number_mul_min(Mul,Min,MinExc) ->
      MinMul = Mul * (1 + floor( (Min-1) / Mul)),
      case MinExc of
  
negative.code: create_patterns(PatternPropList) ->
      % it will crash here if more than one pattern is given. Fix it!
      ?LOG("Inside create_patterns, PatternPropList is ~p~n",[PatternPropList]),
      %L = [pattern_gen(Pat) || Pat <- PatternPropList],
      [L] = lists:map (fun(X) -> pattern_gen(X) end, PatternPropList),
      %[pattern_gen(Pat) || Pat <- PatternPropList],
      ?LOG("Final patterns created: ~p~n",[L]),
      L.
  
  
  
  %%% INTEGER OR GEN. OF INTEGER????
  -spec create_additionals ( json:json_term(), integer(), integer()) -> list(eqc_gen:gen(json:json_term())).
  
  create_additionals({struct, AddTypes}, AddRand, StrRand) ->
      lists:foldl( fun (Add, _Res) ->
  