// Coherence error results because we do not know whether `T: Foo

` or not // for the second impl. use std::marker::PhantomData; pub trait Foo

{ fn foo() {} } impl > Foo

for Option {} impl Foo for Option { } //~^ ERROR E0119 fn main() {}