-
Notifications
You must be signed in to change notification settings - Fork 95
Description
In #29, we had an unresolved comment thread about whether we should make component-level function results symmetric with parameters. The question was independent (pre-existing) of #29, so that PR merged and this issue represents the continued discussion.
One interesting new technical argument just came up via @peterhuene's work: Component-level start
sections calling functions that return "nothing" technically always return unit
. If we treated unit
uniformly (pushed a new unit
value into the value index space), then the "linearity" requirement (each value must be consumed exactly once) would mean we have to consume that unit
... which would then produce a new unit
(ad infinitum). Thus, we have to special-case unit
in the validation rules (so it doesn't push a value index) which is irregular and adds validation complexity. It's not a massive problem, but it does add a point to the multi-return column (which can return an empty list of values).