error[E0308]: mismatched types --> $DIR/printing-binder.rs:10:18 | LL | fn whatever() -> impl for<'a> Trait<'a> + for<'b> Trait<'b> {} | ------------------------------------------ the found opaque type ... LL | let x: u32 = whatever(); | --- ^^^^^^^^^^ expected `u32`, found opaque type | | | expected due to this | = note: expected type `u32` found opaque type `impl for<'a> Trait<'a> + for<'b> Trait<'b>` error[E0308]: mismatched types --> $DIR/printing-binder.rs:12:19 | LL | fn whatever2() -> impl for<'c> Fn(&'c ()) { | ----------------------- the found opaque type ... LL | let x2: u32 = whatever2(); | --- ^^^^^^^^^^^ expected `u32`, found opaque type | | | expected due to this | = note: expected type `u32` found opaque type `impl for<'c> Fn(&'c ())` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.