Why should one NOT derive Debug?

175 points NumericallyStable

I sometimes struggle with debugging external libraries, especially if their structs don't derive the Debug trait. I personally do it for all structs because it helps me "debugging" with prints. It is tempting to open a PR for each of those libraries, but I do not know their reasoning to omit it and don't want to be impolite.

So here are my questions:

  1. Is there ever any good reason not to derive Debug?
  2. Why is Debug not implicitly implemented for all structs, i.e. what could be the reasoning behind the core team's decision?