Earlier quoted context omitted.
If your arguments aren't exclusive, you can pass a list of algebraic data. If they are exclusive, you can construct a type for them.
> If your arguments aren't exclusive, you can pass a list of algebraic data. Which you need to prefix to avoid clashes. > If they are exclusive, you can construct a type for them. Which is going to end up being a record, which: - is awkward to build (compared to just giving options to a command or arguments to a function) - will most likely need to be an instance of Default - which needs to have its fields prefixed t…
Also bad setters ("record {field = val}" looks nice but useless, as not a function).
I hope the developers of GHC also clearly see the problem and someday will be engaged in it. Then the language becomes much more expressive.
Is that task exists somewhere in roadmap?