I found it useful to have the `&dyn Diagnostic` trait impl specifically. I added `Arc<dyn Diagnostic>` for completeness. (I do kind of wonder if we should be preferring `Arc<dyn ...>` over something like `Box<dyn ...>` more generally, especially for things with immutable APIs. It would make cloning cheap.)