anchor.diff:      {"[]", 2};
   print_length({}, _D, _RF, _Enc, _Str) ->
       {"{}", 2};
  +print_length(#{}=M, _D, _RF, _Enc, _Str) when map_size(M) =:= 0 ->
  +    {"#{}", 3};
   print_length(List, D, RF, Enc, Str) when is_list(List) ->
       case Str andalso printable_list(List, D, Enc) of
           true ->
  
positive.code:     print(Term, 1, Ll, D, M, RecDefFun, Enc, Str);
  print(Term, Col, Ll, D, M0, RecDefFun, Enc, Str) when is_tuple(Term);
                                                        is_list(Term);
                                                        is_bitstring(Term) ->
      If = {_S, Len} = print_length(Term, D, RecDefFun, Enc, Str),
      M = max_cs(M0, Len),
  
negative.code:     S = io_lib:write(Term),
      {S, lists:flatlength(S)}.
  
  print_length_map(_Map, 1, _RF, _Enc, _Str) ->
      {"#{...}", 6};
  print_length_map(Map, D, RF, Enc, Str) when is_map(Map) ->
      Pairs = print_length_map_pairs(maps:to_list(Map), D, RF, Enc, Str),
      {{map, Pairs}, list_length(Pairs, 3)}.
  
  print_length_map_pairs([], _D, _RF, _Enc, _Str) ->
      [];
  print_length_map_pairs(_Pairs, 1, _RF, _Enc, _Str) ->
      {dots, 3};
  print_length_map_pairs([{K,V}|Pairs], D, RF, Enc, Str) ->
      [print_length_map_pair(K,V,D-1,RF,Enc,Str) |
       print_length_map_pairs(Pairs,D-1,RF,Enc,Str)].
  
  print_length_map_pair(K, V, D, RF, Enc, Str) ->
      {KS, KL} = print_length(K, D, RF, Enc, Str),
      {VS, VL} = print_length(V, D, RF, Enc, Str),
      {{map_pair, {KS,KL}, {VS,VL}}, KL + VL}.
  
  print_length_tuple(_Tuple, 1, _RF, _Enc, _Str) ->
      {"{...}", 5};
  print_length_tuple(Tuple, D, RF, Enc, Str) ->
  