elm / compiler

Compiler for Elm, a functional language for reliable webapps.
https://elm-lang.org/
BSD 3-Clause "New" or "Revised" License
7.48k stars 658 forks source link

Clarify type syntax #2310

Open pravdomil opened 10 months ago

pravdomil commented 10 months ago

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

github-actions[bot] commented 10 months ago

Thanks for reporting this! To set expectations:

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

lue-bird commented 10 months ago

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

type or Email
    = Email { local : Local, domain : Domain }
pravdomil commented 10 months ago

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.