Make traces opaque
Traces are yielded by the kernel when an error occurs and can be used later to provide additional information such as error location in text. So far, the kernel::trace::Traceable
trait uses directly a slice of Trace
s. This can be made opaque in order to ensure that only valid traces are used.
This however does not prevent a user from calling apply_trace
on a arguments that are well-constructed, but have nothing to do with each other.