Open Work
This page records deliberate gaps in the current language. It is not a promise of syntax or a release schedule. The other reference pages describe behavior available in the interpreter today.
Type Reannotation
Section titled “Type Reannotation”Status: design required.
An explicit annotation on an existing binding currently replaces its persistent runtime type contract. A broader annotation can therefore weaken the earlier contract without a distinct operation at the point of change.
The intended direction is to reject implicit contract replacement and require an explicit conversion or rebinding operation. Its syntax, failure behavior, and relationship to annotations remain undecided.
Function Return Flow
Section titled “Function Return Flow”Status: design required.
Functions currently require a final return; early returns inside ordinary function conditionals
are not supported. Extending function return flow needs rules for definite assignment and return
types across continuing and returning paths. Commit loops deliberately finish through their guards
and do not support early exits.
Effectful Procedure Syntax
Section titled “Effectful Procedure Syntax”Status: syntax design required.
Nilakan currently infers that a user-defined function is effectful when it calls print, directly
or transitively. Such a function can be called only as a statement. This preserves transactional
output inside commit loops, but the distinction is not visible in a function definition.
The language needs syntax that distinguishes value-producing functions from effectful procedures without relying solely on whole-program call-graph inference. The declaration and call-site rules remain undecided.