anchor.diff:  
   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
  
positive.code: 
  eval(L)
    when is_list(L) ->
      run(L);
  
  eval(F)
    when is_function(F,0) ->
  
negative.code:          fold/3,
           foldl/3,
           scramble/1,
           choose/1,
           tmpdir/0,
           mktemp/1,
           unique_string/0,
           have_sctp/0,
           eprof/1]).
  