Tuples
Tuples are fixed-length ordered collections where each element can have a different type. They are accessed by position using numeric indices like .0, .1, .2. They are useful for small return bundles, but records are clearer when field names carry domain meaning.
Records
Records are named field collections that group related data together. They are the primary way to structure domain data in Sector9, offering self-documenting field names like { name Nat }. Immutable records behave like values; mutable records introduce heap identity, ownership, and read/write permissions.
Variants
Variants are tagged unions that represent values from a fixed set of alternatives. Each alternative has a unique tag (starting with #) and can optionally carry a payload. Variants are the standard way to model enumerations, result types, and state machines in Sector9.
Options
Options represent values that may or may not exist. The type ?T means "either a value of type T or nothing." Options eliminate null pointer errors by forcing you to explicitly handle the missing case with switch, do ?, or a proven precondition.
Arrays
Arrays are indexed runtime collections with a fixed size at creation time. Sector9 supports both mutable arrays var T] that allow element updates and immutable arrays [T] that cannot change after creation. For proof-only sequence models, use [Seq instead.




