Most readers will be familiar with Bob Martin's famous dependency inversion principle, which states -
High-level modules should not depend on low-level modules. Both should depend on abstractions
Abstractions should not depend upon details. Details should depend upon abstractions
I believe I understand it all pretty well, except for the first sentence in the second line - "Abstractions should not depend upon details". What does this mean exactly? What would be a simple example of an abstraction being dependent upon a detail?