Getting rid of variant constructors

Why do you want to get rid of constructors? There are plenty of options here, including GADT, phantom types, etc. Can you explain what you’re trying to achieve, like ideally?