@farmdawgnation If it isn't an override it's an overload. And if it's an overload then there are two different definitions for ~> which behave differently. That's basically a booby trap.

There has to be one signature that applies to all implementations of ~>. If [T](t: T) => ParamFailure[T] doesn't cover all the cases, then it's wrong to begin with. Or our desired implementation is misguided.