anchor.diff:  
   eval(L)
     when is_list(L) ->
  -    run(L);
  +    [eval(F) || F <- L];
   
   eval(F)
     when is_function(F,0) ->
  
positive.code: %% eval/1
  %%
  %% Evaluate a function in one of a number of forms.
  
  eval({M,[F|A]})
    when is_atom(F) ->
  
negative.code: 
  scramble(L) ->
      [X || {_,X} <- lists:sort([{rand:uniform(), T} || T <- L])].
  
  %% ---------------------------------------------------------------------------
  %% choose/1
  %%
  %% Return a random element from a list.
  
  choose([_|_] = List) ->
      hd(lists:nthtail(rand:uniform(length(List)) - 1, List)).
  
  %% ---------------------------------------------------------------------------
  %% tmpdir/0
  
  tmpdir() ->
      case os:getenv("TMPDIR") of
          false ->
              "/tmp";
          Dir ->
              Dir
      end.
  
  %% mktemp/1
  
  mktemp(Prefix) ->
      Suf = integer_to_list(erlang:monotonic_time()),
      Tmp = Prefix ++ "." ++ Suf,
      ok = file:make_dir(Tmp),
      Tmp.
  
  %% ---------------------------------------------------------------------------
  %% unique_string/0
  