elm/compiler

Clarify type syntax

pravdomil opened this issue · 3 comments

Since type can only define sum(or) type let's use type or keyword instead, to make it explicit.

Or maybe:

And type - zero and more values type alias
Or type - zero and more variants type or
Opaque type - basically wrapper around one value type opaque

Thanks for reporting this! To set expectations:

  • Issues are reviewed in batches, so it can take some time to get a response.
  • Ask questions in a community forum. You will get an answer quicker that way!
  • If you experience something similar, open a new issue. We like duplicates.

Finally, please be patient with the core team. They are trying their best with limited resources.

To me it seems somewhat confusing to call single-variant types "or":

type or Email
    = Email { local : Local, domain : Domain }

that is how it works now,
it it still an or type with one variant

but that is another topic:
if or type can have only one variant

I would suggest following:

And type - zero and more values type alias
Or type - zero and more variants type or
Opaque type - basically wrapper around one value type opaque

That also solves a problem how data should be serialized into text/binary format.

Now, it is not clear if:
Or type with one variant should be treated as just the value or variant index and the value.