Both of the following compile fine <https://is.gd/k1iXTl>: ```rust fn foo<T:?>() {} use std::error::Error; fn bar<E>() -> Result<(),E> where E : Error + ? { Ok(()) } ``` I would have expected that a lonely `?` (without a trait name) in a bound was an error. (Thanks @tomaka on IRC for the simpler repro.)