anchor.diff:          end
       end, Acc0, L).
   
  --spec choose_random(list(T)) -> T.
  +-spec choose_random([T,...]) -> T.
   choose_random(L) ->
       lists:nth(random:uniform(length(L)), L).
   
  
positive.code: -spec replace(string(), char(), char(), string()) -> string().
  replace([], _, _, L) ->
      lists:reverse(L);
  replace([C|R], A, B, L) when C == A ->
      replace(R, A, B, [B|L]);
  replace([C|R], A, B, L) ->
      replace(R, A, B, [C|L]).
  
  -spec startswith(binary(), binary()) -> bool().
  startswith(B, Prefix) when size(B) < size(Prefix) ->
      false;
  startswith(B, Prefix) ->
  
negative.code: choose_random(L, R, N) ->
      C = choose_random(L),
      choose_random(L -- [C], [C|R], N - 1).
  