anchor.diff:              format_diff(Diff)
           ])
       };
  +format_info(Failure, {error, {error, {assertException_failed, Info}, ST}}) ->
  +    case proplists:get_value(unexpected_exception, Info) of
  +        undefined ->
  +            Success = proplists:get_value(unexpected_success, Info),
  +            Term = format_term(Success, 22, 4),
  +            {
  +                color:red(format_case(Failure, ST)),
  +                case multiline(Term) of
  +                    true ->
  +                        io_lib:format("~s~n~s", [
  +                            color:redb("Unexpected success:"),
  +                            color:red(format_term(Success, 0, 4))
  +                        ]);
  +                    false ->
  +                        [
  +                            color:redb("Unexpected success:"),
  +                            " ",
  +                            color:red(Term)
  +                        ]
  +                end
  +            };
  +        {E, R, NewST} ->
  +            {
  +                color:red(format_case(Failure, ST)),
  +                io_lib:format("~s~n~s", [
  +                    color:redb("Unexpected exception:"),
  +                    color:red(format_exception(E, R, NewST))
  +                ])
  +            }
  +    end;
   format_info(Failure, {error, {E, R, ST}}) ->
       {
           color:red(format_case(Failure, ST)),
  
positive.code: add_info({M, F, A}, [])                 -> {M, F, A, []};
  add_info({M, F, A}, [{M, _, _, I}|_ST]) -> {M, F, A, I};
  add_info(MFA, [_Line|ST])               -> add_info(MFA, ST).
  
negative.code:     }.
  
  diff_prep_term(Term) ->
      Pretty = format_term(Term, 0, 0),
      Flat = iolist_to_binary(Pretty),
      TermSplit = "([,\\[\\]\\{\\}])",
      re:split(Flat, TermSplit, [trim]).
  
  format_term(Term, Indent, Outer) ->
      {ok, Cols} = io:columns(),
      io_lib_pretty:print(Term, Indent, Cols - Outer, -1).
  
  format_diff([]) ->
      [];
  