Parameterized Modules

Can't you do most of that with zero-variant enums? They can't be constructed, so while you can use them as formal parameters such functions cannot be called.