anchor.diff:  format(Fmt, Args, Max, Options) ->
       try lager_format:format(Fmt, Args, Max, Options)
       catch
  -        _:_ ->
  +        _What:_Why ->
               erlang:error(badarg, [Fmt, Args])
       end.
   
  
positive.code:             {R, Len} = list_body([H|T], Max-2, Options, false),
              {[$[, R, $]], Len + 2}
      end;
  alist_start([H|T], Max, Options) when H =:= 9; H =:= 10; H =:= 13 ->
      try alist([H|T], Max -1, Options) of
          {L, Len} ->
              {[$"|L], Len + 1}
  
negative.code: alist([], _Max, _Options) -> {"\"", 1};
  alist(_, Max, #print_options{force_strings=true}) when Max < 4 -> {"...", 3};
  alist(_, Max, #print_options{force_strings=false}) when Max < 5 -> {"...\"", 4};
  alist([H|T], Max, Options = #print_options{force_strings=false,lists_as_strings=true}) when H =:= $"; H =:= $\\ ->
      %% preserve escaping around quotes
      {L, Len} = alist(T, Max-1, Options),
      {[$\\,H|L], Len + 2};
  alist([H|T], Max, Options) when is_integer(H), H >= 16#20, H =< 16#7e ->     % definitely printable
      {L, Len} = alist(T, Max-1, Options),
      {[H|L], Len + 1};
  alist([H|T], Max, Options) when H =:= $\t; H =:= $\n; H =:= $\r; H =:= $\v; H =:= $\e; H=:= $\f; H=:= $\b ->
      {L, Len} = alist(T, Max-1, Options),
      case Options#print_options.force_strings of
          true ->
  