Currently the IBKEM trait is not very flexible. Some constructions require a public key in the decapsulation function (for example the FO variants). Right now, we pass an Option<&Self::Pk> to the decapsulation function, which panics at runtime when no public key is given, but ideally this would be a compile-time error.