anchor.diff:  prop_format() ->
       ?FORALL({FmtArgs, MaxLen}, {gen_fmt_args(), gen_max_len()},
               begin
  -                FudgeLen = 50, %% trunc_io does not correctly calc safe size of pid/port/numbers/funs
  +                %% trunc_io does not correctly calc safe size of pid/port/numbers/funs
  +                FudgeLen = calculate_fudge(FmtArgs, 50),
                   {FmtStr, Args} = build_fmt_args(FmtArgs),
                   try
                       Str = lists:flatten(lager_trunc_io:format(FmtStr, Args, MaxLen)),
  
positive.code: 
  -ifdef(TEST).
  -ifdef(EQC).
  -export([test/0, test/1, check/0]).
  
  -include_lib("eqc/include/eqc.hrl").
  -include_lib("eunit/include/eunit.hrl").
  
negative.code:         end,
      lists:foldl(F, {"", []}, FmtArgs).
  
  calculate_fudge([], Acc) ->
      Acc;
  calculate_fudge([{"~62P", _Arg, _Depth}|T], Acc) ->
      calculate_fudge(T, Acc+62);
  calculate_fudge([{Fmt, Arg}|T], Acc) when
          Fmt == "~f"; Fmt == "~10.f";
          Fmt == "~g"; Fmt == "~10.g";
          Fmt == "~e"; Fmt == "~10.e";
          Fmt == "~x"; Fmt == "~X" ->
      calculate_fudge(T, Acc + length(lists:flatten(io_lib:format(Fmt, [Arg]))));
  calculate_fudge([_|T], Acc) ->
      calculate_fudge(T, Acc).
  
  -endif. % (EQC).
  -endif. % (TEST).
  