Previous reply was a bit orthogonal to your question, though. I could have still provided a top-level `Model` struct to contain all the pieces. Having no state itself, it would only be referenced by methods that need typedefs for all pieces of the model.

If we want this kind of thing, we could add a `Model` struct to the namespace as a catch-all for typedefs, but I haven't needed this yet and suspect it encourages oddly-coupled code.