Locally I simply added a type constraint to method new for class Failure:
$ diff src/core/Failure.pm Failure.pm.orig
5c5
< method new(Exception $exception) { self.bless(:$exception) }
---
> method new($exception) { self.bless(:$exception) }
With that change the error message became:
$ perl6 -e 'Failure.new("foo").();'
Type check failed in binding $exception; expected 'Exception' but got 'Str'
in method new at src/gen/m-CORE.setting:15706
in block <unit> at -e:1
Would that be good enough?
