Skip to content

(Re-)Consider multi-return vs unit #41

@lukewagner

Description

@lukewagner

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions