What I find messed-up is the asymmetry between constructor and other members. The constructor requires a `TracingBuilder` instance, so it's clearly part of the public contract. However, all the other members treat it as though it was an implementation detail.

I was concerned that it would lead to inconsistencies, but it seems all the other members are consistent with each other; it's only the constructor that sticks out.

It's only messed up because it's more difficult to reason about the code. Usually, in most of AutoFixture's code base, I can just look at the public API of a class to have a pretty good idea of what it does. Not here: I actually had to read the code in order to figure out its invariants. We'll live with it here because it's not a common problem in this code base, but it's an example of small problems that slow one down.

This is the sort of problem I attempt to counter with [Poka-yoke code](http://blog.ploeh.dk/2011/05/24/Poka-yokeDesignFromSmelltoFragrance).