v5 Semantics

Module-level semantics

  • modules are compile-time compilation units
  • exports define public contract, not all internal bindings

Graph constraints

  • module names unique
  • main exists and is last
  • imports must point to earlier modules

Alias and scope

  • imports become aliases in current module scope
  • alias collisions are redeclare errors
  • alias used only for qualified access

Member-access validation

  • alias must resolve
  • alias must be module binding
  • requested member must be exported

Layered semantics

  • old scope/const/arity/return/break rules still apply
  • module checks are additional front-end guards

Why now

  • avoids runtime module lookup crashes
  • keeps capstone deterministic
  • improves teaching value by failing early

Quick checks

  • unqualified member access from imported module fails
  • future imports are rejected
  • unknown exports are explicit
1 / 1
Use arrow keys or click edges to navigate. Press H to toggle help, F for fullscreen.