anchor.diff:  map_rest(KVs, D, I, L) ->
       map_rest(KVs, I, D, I, L-1).
   
  -map_rest([], _, _, _, _) -> "";
  -map_rest(_, _, 0, _, _) -> " ...";
  +map_rest(_, _, 0, _, _) -> " ...";              %Reached our depth
   map_rest([K,V|KVs], CurL, D, I, L) ->
       case map_assoc(K, V, CurL+1, D, I, L) of
  -        {both_fit,KVcs,KVl} ->      %Both fit on this line
  +        {curr_line,KVcs,KVl} ->                 %Both fit on current line
               [$\s,KVcs,map_rest(KVs, CurL+KVl+1, D-1, I, L)];
  -        {both_line,KVcs,KVl} ->           %Both fit on single line
  +        {one_line,KVcs,KVl} ->                  %Both fit on one line
               [newline(I, KVcs),map_rest(KVs, I+KVl, D-1, I, L)];
  -        {break,KVcs} ->       %On separate lines
  +        {sep_lines,Kcs,Vcs} ->                  %On separate lines
               %% Force a break after K/V split.
  -            [newline(I, KVcs),map_rest(KVs, L, D-1, I, L)]
  +            [newline(I, Kcs),newline(I, Vcs),map_rest(KVs, L, D-1, I, L)]
       end;
   map_rest(E, CurL, D, I, L) ->
       map_last(E, CurL, D, I, L).
   
  +%% Print any remaining element as list element.
   map_last(Tail, CurL, D, I, L) ->
       list_tail(Tail, CurL, D, I, L).
   
  
positive.code: term(Bit, D, _, _) when is_bitstring(Bit) ->
      bitstring(Bit, D);                          %First D bytes
  term(Map, D, I, L) when ?IS_MAP(Map) ->
      Fun = fun (K, V, Acc) -> [K,V|Acc] end,
      Mcs = map_body(maps:fold(Fun, [], Map), D, I+3, L),
      ["#M(",Mcs,$)];
  
negative.code: term([backquote,E], D, I, L) -> ["`",term(E, D, I+1, L)];
  term([comma,E], D, I, L) -> [",",term(E, D, I+1, L)];
  term(['comma-at',E], D, I, L) -> [",@",term(E, D, I+2, L)];
  term([map|MapBody], D, I, L) ->                 %Special case map form
      Mcs = map_body(MapBody, D, I+5, L),
      ["(map ",Mcs,$)];
  term([Car|_]=List, D, I, L) ->
  