anchor.diff:  
   
   %%-----------------------------------------------------------------------
  -%% @doc Equivalent to `eval([], Body)'.  Occurrences of `{call,M,F,A}'
  +%% @doc Evaluate `Body'.  Occurrences of `{call,M,F,A}'
   %% is replaced by the result of calling `erlang:apply(M,F,A)', and
   %% occurrences of `{var,Name}' in `Body' are not substituted.  
  -
  +%%
  +%% This is a plain function, not a compile_transform or anything like that,
  +%% so nested functions are not traversed in the substitution.  However, nested
  +%% occurrences of `{call,M,F,A}' are substituted as one would think: 
  +%% depth first, left-to-right.
  +%%
   %% @spec eval(Body::any()) -> any() 
  +%% @equiv eval([],Body)
   %% @end
   %% -----------------------------------------------------------------------
   eval(Term) ->
  
positive.code: 
  
  %% @doc Support function for the `?LET(Vars,Dom1,Dom2)' macro.
  %% @spec bind(domain(T), fun( (T) -> domain(D) )) -> domain(D)
  -spec bind(domain(T::any()), 
  	   fun( (T::any()) -> domain(D) )) -> domain(D).
  
negative.code: %% finally, if the generator is the value itself, it simplifies to itself
  shrink(Any,Any) -> {Any,Any}.
  
  %% @doc
  %% support functions for the generic shrinking
  %% @private
  %% @end
  
  -spec shrink_pair([domain(H)|domain(T)], [H|T], non_neg_integer()) -> 
      {[domain(H)|domain(T)],[H|T]}.
  