yeah as nice as it is what you can achieve with trait-bounds there are definitely trade-offs, being compile time and error messages, and sometimes mental complexity, understanding what the trait-bounds exactly mean...
I really hope, that this area gets improvement on at least the error-messages and compile time (incremental cached type-checking via something like salsa)
I much prefer getting told of that it doesn't match a trait than get 600 characters of which the majority is implementation detail of global allocators und from what exactly the string is derived.
Depends on what trait bound error messages you have had yet, I had 1000 lines long already, where it's not obvious at all what is meant (and is often a very simple fix). But I'm sure this will get better over time, there's already a bigger ongoing redesign of the type system solver, so maybe it will be integrated into stable rust soon.