pub trait Item: Eq + Hash { type Id: Id; }
The Id associated with this Item, e.g. Function -> FunctionId.
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.