???
A library is a collection of declarations and definitions maintained, documented, and shipped together.
A library could be a set of headers (a "header only library") or a set of headers plus a set of object files.
A library can be statically or dynamically linked into a program, or it may be #included
- A cycle implies complication of the build process.
- Cycles are hard to understand and may introduce indeterminism (unspecified behavior).
A library can contain cyclic references in the definition of its components. For example:
???
However, a library should not depend on another that depends on it.