error[E0277]: `<L1 as Lam<&'a u8>>::App` doesn't implement `std::fmt::Debug`
  --> $DIR/bad-bounds-on-assoc-in-trait.rs:31:6
   |
LL | trait Case1 {
   |       ----- required by a bound in this
...
LL |                 Debug
   |                 ----- required by this bound in `Case1`
...
LL | impl Case1 for S1 {
   |      ^^^^^ `<L1 as Lam<&'a u8>>::App` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
   |
   = help: the trait `for<'a> std::fmt::Debug` is not implemented for `<L1 as Lam<&'a u8>>::App`

error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` is not an iterator
  --> $DIR/bad-bounds-on-assoc-in-trait.rs:36:20
   |
LL | fn assume_case1<T: Case1>() {
   |                    ^^^^^ `<<T as Case1>::C as std::iter::Iterator>::Item` is not an iterator
   |
   = help: the trait `std::iter::Iterator` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item`
help: consider further restricting the associated type
   |
LL | fn assume_case1<T: Case1>() where <<T as Case1>::C as std::iter::Iterator>::Item: std::iter::Iterator {
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be sent between threads safely
  --> $DIR/bad-bounds-on-assoc-in-trait.rs:36:20
   |
LL | trait Case1 {
   |       ----- required by a bound in this
LL |     type C: Clone + Iterator<Item:
LL |         Send + Iterator<Item:
   |         ---- required by this bound in `Case1`
...
LL | fn assume_case1<T: Case1>() {
   |                    ^^^^^ `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be sent between threads safely
   |
   = help: the trait `std::marker::Send` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item`
help: consider further restricting the associated type
   |
LL | fn assume_case1<T: Case1>() where <<T as Case1>::C as std::iter::Iterator>::Item: std::marker::Send {
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be shared between threads safely
  --> $DIR/bad-bounds-on-assoc-in-trait.rs:36:20
   |
LL | trait Case1 {
   |       ----- required by a bound in this
...
LL |         > + Sync>;
   |             ---- required by this bound in `Case1`
...
LL | fn assume_case1<T: Case1>() {
   |                    ^^^^^ `<<T as Case1>::C as std::iter::Iterator>::Item` cannot be shared between threads safely
   |
   = help: the trait `std::marker::Sync` is not implemented for `<<T as Case1>::C as std::iter::Iterator>::Item`
help: consider further restricting the associated type
   |
LL | fn assume_case1<T: Case1>() where <<T as Case1>::C as std::iter::Iterator>::Item: std::marker::Sync {
   |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: `<_ as Lam<&'a u8>>::App` doesn't implement `std::fmt::Debug`
  --> $DIR/bad-bounds-on-assoc-in-trait.rs:36:20
   |
LL | trait Case1 {
   |       ----- required by a bound in this
...
LL |                 Debug
   |                 ----- required by this bound in `Case1`
...
LL | fn assume_case1<T: Case1>() {
   |                    ^^^^^ `<_ as Lam<&'a u8>>::App` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
   |
   = help: the trait `for<'a> std::fmt::Debug` is not implemented for `<_ as Lam<&'a u8>>::App`

error: aborting due to 5 previous errors

For more information about this error, try `rustc --explain E0277`.
