match expression form, member access, and precedence rules.
Boolean Operators
Boolean operators work onBool values and return Bool. Kairo does not support truthy/falsy coercion — conditions must be explicitly Bool.
Kairo uses the keyword
not for logical negation, not !. Writing !active is a syntax error.Comparison Operators
Comparison operators work on ordered types (Int32, Int64, Decimal, Float64, Text, and temporal types) and return Bool.
Arithmetic Operators
Arithmetic operators work on numeric types (Int32, Int64, Decimal, Float64) and return the same type as the operands.
Operator Precedence
Operators are evaluated in the following order (highest precedence first). Use parentheses to override the default order.match as an Expression
The match keyword works both as a statement and as an expression. In expression form, each arm uses => and the whole construct produces a value that you can bind to a let or use inline.
else arm is the catch-all. In expression form, omitting else when the match is not exhaustive is a compile error.
Member Access — .
Use . to access a member, property, or method on a type instance, a type func on the type itself, or a module-qualified name.
No Operator Overloading
Kairo v0.1 does not support operator overloading. Every operator listed on this page has a fixed, built-in meaning. You cannot define custom+, -, or == behaviour for your own types.
Operator overloading is under consideration for a future version of Kairo. Until then, express custom combination logic with named methods (e.g.,
price.add(other) rather than price + other).