Indeed, shouldn't this be `override def ~>[T](errorCode: T) = ParamFailure(msg, exception, chain, errorCode)`?