anchor.diff:  
   print1_defun([Def,Name,Args|Rest], D, I, L) when
         is_atom(Name), (D > 3) or (D < 0) ->
  -    Dcs = atom_to_list(Def),            %Might not actually be defun
  +    Dcs = atom_to_list(Def),                    %Might not actually be defun
       Ncs = atom_to_list(Name),
       case lfe_lib:is_symb_list(Args) of
  -    true ->                    %Traditional
  -        Acs = print1(Args, D-2, I + length(Dcs) + length(Ncs) + 3, L),
  -        Tcs = print1_tail(Rest, D-3, I+2, L),
  -        ["(",Dcs," ",Ncs," ",Acs,Tcs,")"];
  -    false ->                %Matching
  -        Tcs = print1_tail([Args|Rest], D-2, I+2, L),
  -        ["(",Dcs," ",Ncs,Tcs,")"]
  -    end;
  +        true ->                                 %Traditional
  +            Acs = print1(Args, D-2, I + length(Dcs) + length(Ncs) + 3, L),
  +            Tcs = print1_tail(Rest, D-3, I+2, L),
  +            ["(",Dcs," ",Ncs," ",Acs,Tcs,")"];
  +        false ->                                %Matching
  +            Tcs = print1_tail([Args|Rest], D-2, I+2, L),
  +            ["(",Dcs," ",Ncs,Tcs,")"]
  +        end;
   print1_defun(List, D, I, L) ->
       %% Too short to get worked up about, or not a "proper" defun or
       %% not enough depth.
  
positive.code: print1_tail_max([], _, _, _, Acc) -> {yes,reverse(Acc)};
  print1_tail_max(_, 0, _, _, Acc) -> {yes,reverse(Acc, [" ..."])};
  print1_tail_max([Car|Cdr], D, I, L, Acc) ->
      Cs = print1(Car, D, 0, 99999),          %Never break the line
      print1_tail_max(Cdr, D-1, I + flatlength(Cs) + 1, L, [Cs," "|Acc]);
  print1_tail_max(S, D, I, L, Acc) ->
      Cs = print1(S, D, 0, 99999),            %Never break the line
      print1_tail_max([], D-1, I + flatlength(Cs) + 3, L, [Cs," . "|Acc]).
  
  %% print1_list(List, Depth, Indentation, LineLength)
  
negative.code: indent_type('bc') -> 1;                %Binary comprehensions
  indent_type('match-spec') -> 0;
  indent_type(_) -> none.
  
  %% print1_map(Map, Depth, Indentation, LineLength).
  %%  Print a map, one key value pair per line.
  
  print1_map(Map, D, I, L) ->
      [$#,$M,$(,print1_map_body(maps:to_list(Map), D, I+3, L-1),$)].
  
  print1_map_body([], _, _, _) -> [];
  print1_map_body([KV|KVs], D, I, L) ->
      [print1_map_assoc(KV, D, I, L)|print1_map_rest(KVs, D-1, I, L)].
  
  print1_map_rest([], _, _, _) -> [];
  print1_map_rest(_, 0, _, _) -> "...";
  print1_map_rest([KV|KVs], D, I, L) ->
      Massoc = print1_map_assoc(KV, D, I, L),
      [$\n,blanks(I, []),Massoc|print1_map_rest(KVs, D-1, I, L)].
  
  print1_map_assoc({K,V}, D, I, L) ->
      Kcs = print1(K, D-1, I, 99999),             %Print without line breaks
      Kl = flatlength(Kcs),
      Vcs = print1(V, D-1, I, 99999),             %Print without line breaks
      Vl = flatlength(Vcs),
      %% Test whether we can use the one line versiosn and how.
      if I + Kl + 1 + Vl =< L -> [Kcs,$\s,Vcs];
         (I + Kl =< L) and (I + Vl =< L) ->
              [Kcs,$\n,blanks(I, [])|Vcs];
         I + Kl =< L ->
              [Kcs,$\n,blanks(I, [])|print1(V, D-1, I, L)];
         I + Vl =< L ->
              [print1(K, D-1, I, L),$\n,blanks(I, [])|Vcs];
         true ->
              [print1(K, D-1, I, L),$\n,blanks(I, [])|print1(V, D-1, I, L)]
      end.
  