How do y’all feel about the following syntax/operators?
My Opinion
Access
::
chooses an option from a custom type:
scoop::chocolate
. scoop :
#vanilla
#chocolate
#strawberry
::
also grabs a member of a record:
r::a . r = { a = 1, b = "x" }
The “hashtag” syntax seems much pretty intuitive for tagged unions.
I personally love the symmetry between ::
and #
. Feel the power of squares!
From there, I feel like ::
extends nicely to records. Obviously conventional periods (e.g. r.a
) would be nicer, but we want to reserve that for “where” statements.
Pinning
@
pins a specific version of a scrap, so that it doesn’t fetch the latest one from the scrapyard:
taylor/example@11
I like how this feels like npm install package@1.0.0
…
Max’s Opinion
@max made a good argument for instead using @
to access records:
I’ll comment a little more later (probably in depth after next Monday; away this weekend) but my surface-level comment is:
This is kind of a major syntax change. I think
@
is better suited for indexing (even is “at” in English) than::
is. Is there another char we can use for pinning? Perhaps~
? I think this language change should also be pulled out of this PR and discussed separately
Your Opinion
Thoughts?