Valhalla basic concepts / terminology

Dan Smith daniel.smith at
Wed Jun 10 15:20:12 UTC 2020

> On Jun 9, 2020, at 6:00 PM, Brian Goetz <brian.goetz at> wrote:
>> - The syntax ".val" used to denote an "inline type" is a bit of a mismatch. Maybe we want a new syntax. Or maybe we want to rework the word "value" into the story so that "inline type" becomes "value type".
>> This was my reaction too. ".val" means "the value itself, that you care about", and ".ref" means "a reference value that points to the value you care about", but I used the word "value" more times in the second phrase. It doesn't feel like this will be clear.
> My intention here was to appeal to terms many users already understand: pass by value and pass by reference.  That's why `V.val` is not `V.inline`.  

Sure. And maybe that value/reference dichotomy can be extended into the terms we use in the model. So, the "values" of the language (using the term formally) are *values* (objects) and *references to values*. Now there's a nice alignment between the syntax and the terminology.

Or given that "objects" parenthetical, maybe "object" is the right term: the values of the language are *objects* and *references to objects*. In that case, maybe the syntax should be 'Foo.obj'. The objects themselves, not references.

More information about the valhalla-spec-observers mailing list