anchor.diff:    Runs = lists:map(fun (Hand) -> new_run_record(Hand, TrumpSuit) end, Hands),
     Runs.
   
  -new_run_record(Cards, _TrumpSuit) ->
  +new_run_record(Cards, TrumpSuit) ->
     SortedCards = sort_cards_by_value(Cards),
     SplitBySuit = split_by_suit(SortedCards),
  -  _Runs = lists:map(fun score_suit/1, SplitBySuit),
  +  {CardsBySuit, Suits} = lists:unzip(SplitBySuit),
  +
  +  % {suit, {type, high, score}}
  +  Runs = lists:zip(Suits, lists:map(fun score_suit/1, CardsBySuit)),
  +
  +  Folder = fun({Suit, Run}, Acc) -> fold_runs(Suit, Run, Acc, TrumpSuit) end,
  +  NoRun = {nosuit, #best_run{type=none, high=0, score=0, trump=false}},
  +
  +  _BestRun = lists:foldl(Folder, NoRun, Runs),
  +
     #run_record{twenty=false,
                 fifty=false,
                 bella=false,
  
positive.code: 
  -include_lib("eunit/include/eunit.hrl").
  
  -record(run_record, {twenty, fifty, bella, best_run, score}).
  
  -export([new/2]).
  
negative.code: score_suit(Cards) ->
    score_suit(none, none, Cards, 0, none, 0, 0).
  
  % fifty better than other:
  fold_runs(ThisSuit, {fifty, High, Score1},
            #best_run{type=Type, score=Score} = Best, Trump) when Type =/= fifty ->
    Best#best_run{type=fifty, score=Score + Score1, high=High,
      trump=(ThisSuit==Trump)};
  
  % twenty when no other run:
  fold_runs(ThisSuit, {twenty, High, Score1},
            #best_run{type=none, score=Score} = Best, Trump) ->
    Best#best_run{type=twenty, score=Score + Score1, high=High,
      trump=(ThisSuit==Trump)};
  
  % Same high card, same type, but this is trump:
  fold_runs(Trump, {Type, High, Score1},
            #best_run{type=Type, high=High, score=Score} = Best, Trump) ->
    Best#best_run{score=Score + Score1, trump=true};
  
  % Better high card, same type:
  fold_runs(_AnySuit, {Type, High, Score1},
            #best_run{type=Type, high=High2, score=Score} = Best, _Trump) when
            High > High2 ->
    Best#best_run{score=Score + Score1, high=High};
  
  % Worse run:
  fold_runs(_AnySuit, {_Type, _High, Score1},
            #best_run{score=Score} = Best, _Trump) ->
    Best#best_run{score=Score + Score1}.
  
  %%
  %% Tests
  %%
  