This is a contradiction. Polymorphic variants are structural types (they exist without being declared), they cannot be derived from values and using modules doesn’t add any expressiveness at this level.
The complexity of the higher-kinded library is rarely justified, I would advise to ignore this library until you are far more familiar with OCaml.