anchor.diff:  
   -export([start/2, stop/1]).
   -export([shuffle/1]).
  +-export([improved_shuffle/1]).
   
   
   %% Application callbacks
  
positive.code: stop(_State) ->
      ok.
  
  
  -spec shuffle(List :: list()) -> list().
  
  shuffle(List) ->
  
negative.code:     do_shuffle(RemainingList, [Item|ShuffledList]).
  
  
  %% Another shuffle algorithm that is more efficient in Erlang since it only
  %% traverses the links in the List type three times.
  -spec improved_shuffle(List :: list()) -> list().
  
  improved_shuffle(List) ->
      Proplist = [{random:uniform(), Item} || Item <- List],
      [Item || {_, Item} <- lists:keysort(1, Proplist)].
  
  
  -spec remove_element(ElemPos :: integer(), List :: list()) -> list().
  
  remove_element(1, List) ->
  