When Ordinary Variants Get in the Way: Reaching for OCaml's Polymorphic Variants
Ordinary OCaml variants force duplication or wrapper types when modules share overlapping sets of cases. Polymorphic variants solve this — here's a worked config-parser example, plus the exhaustiveness trade-off you need to manage.