Thrown when the type check of a binding operation fails.
For example:
my Int $x := "foo";
CATCH { default { put .^name, ': ', .Str } };
# OUTPUT: ยซX::TypeCheck::Binding: Type check failed in binding; expected Int but got Str ("foo")โคยป
Note that the compiler is free to detect obvious errors at compile time,
and complain with a different error at compile time.