Other TAP producers, such as Perl, report expected failures and unexpected successes like this:
not ok 1 - this should be equal but we have not implemented it yet # TODO not implemented yet
ok 2 - likewise # TODO not implemented yet
1..2
Here test 1 is an expected failure, and test 2 is an unexpected success (it was marked as an expected failure but succeeded anyway).
@expectedFailure currently prints _('(expected failure)') or _('(unexpected success)'). If it printed # TODO first, resulting in something like
not ok 1 - this should be equal but we have not implemented it yet # TODO (expected failure)
ok 2 - likewise # TODO (unexpected success)
1..2
then that would interoperate with other consumers.