I'd argue this whole TraceExtensions class doesn't belong in Contracts. Though we should clean that up as a separate change.