```rust trait Foo { fn foo(self: Self); } impl Foo for () { fn foo(self) {} } fn main() { <()>::foo(()); } ``` Notice the extra `: Self:` part at the call site. This works with any kind of `Self` (`Box<Self>`, `Arc<Self>`, etc.). 