Files
Claro/docs/ADVANCED_STATIC_TYPING.md
T

1.7 KiB

Advanced Static Typing

Claro v1.18.26 adds the first advanced static-typing foundation: typed containers checked by claro typecheck.

Typed lists

SET names AS LIST OF TEXT TO LIST
ADD "Ada" TO names
ADD "Grace" TO names

The type checker now rejects wrong item types:

SET names AS LIST OF TEXT TO LIST
ADD 123 TO names

Output:

Type mismatch for list names: expected TEXT item, but this value looks like NUMBER.

Typed maps

SET scores AS MAP OF NUMBER TO MAP
PUT scores KEY "math" VALUE 98

The type checker rejects wrong value types:

SET scores AS MAP OF NUMBER TO MAP
PUT scores KEY "oops" VALUE "high"

Output:

Type mismatch for map scores: expected NUMBER value, but this value looks like TEXT.

Function parameter checks

Claro now has a small static-checking foundation for function arguments. Keep the beginner-friendly function syntax, then put the expected type inside the function with CHECK TYPE:

TEACH square amount
    CHECK TYPE amount IS NUMBER
    SAY amount
END

DO square 4

If a learner calls the function with the wrong kind of value, claro typecheck explains which parameter needs which type:

TEACH square amount
    CHECK TYPE amount IS NUMBER
    SAY amount
END

DO square "oops"

Output:

Type mismatch for function square: parameter amount needs NUMBER, but this argument looks like TEXT.

Status

This is currently a static checker feature. It improves claro typecheck and validation confidence. Runtime enforcement for every container mutation and richer function signatures can be added later after the syntax is classroom-tested.