I was looking at replacing the ml_kem::EncodedSizeUser trait with KeySizeUser and KeyInit. This works fine for DecapsulationKey (i.e. private keys), but it's a little bit weird for EncapsulationKey since the KeyInit::generate_key* methods don't make sense for public keys.
I was wondering if perhaps they should be moved to their own separate keygen trait.