> It also seems to me that a trace with multiple chains should just be a
> container for multiple traces, and the logic for individual chains
> should be in separate classes.

I was thinking the other way around: a single-chain trace should just be
a "multiple" trace object with one chain. This way, all traces are
handled the same, and functions like traceplot don't need to check
whether the trace is an instance of the single or multiple trace class.

Also, when using non-memory backends, the distinction between single and
multiple trace isn't as clear to me because this will be made at the
level of the call to the database.

Is there a specific advantage to using a container object that you have
in mind?