Types & data
Uppercase vs lowercase is enforced
Ascent reads your capitalization as meaning. An initial capital always names a type or a constructor — Point, Circle, True, None. An initial lowercase always names a binding — a variable, a parameter, a field. And it’s enforced: a binding may not start with a capital.
Ascent sees Total in a value slot, assumes you’re naming a type or constructor, and gets confused when no { … } follows. Lowercase it and all is well:
(Coming from C or JS? Note True, False, and None are capitalized here, matching Python — they’re ordinary constructors, and constructors are the capitalized things.)