```rust #![feature(type_alias_impl_trait)] fn main() { assert_eq!(foo().to_string(), "foo"); } type Foo = impl std::fmt::Display; fn foo() -> Foo { "foo" } ``` this example has to compile but doesn't with the new solver