The deterministic value set
Values that extend the model
As you move into Sense’s AI-native and safety features, a few more value kinds appear — each documented in depth on its own page:Model
A runtime reasoning resource — never a raw API handle.
Answer
The result of
ask(...): a value, a confidence, and a source —
never silently just “a string.”Agent
A runtime entity with identity, persistent state, and a lifecycle.
Action
A prepared-but-not-yet-executed world-changing operation.
Truthiness
nil, false, 0, 0.0, "", and [] are falsy. Everything else —
including any non-empty string or array — is truthy:
Operators
- Arithmetic
- Comparison
- Logic
- String / Array +
+ - * / % — standard precedence. / is always true (float) division;
there’s no separate integer-division operator yet.Type annotations are a runtime check, not static inference
values.matches_type() at the point of
assignment, call, and return — a shallow, honest runtime check, not a real
type system. Array<T> checks element types recursively; Any accepts
anything; an unrecognized type name is currently unenforced.
Real static type checking — including how the type system should represent
Answer<T>’s reliability — is an open research question in Sense’s design
log, deliberately deferred rather than bolted on twice. See
Roadmap.Continue
Variables & scope
The one assignment rule, and how
local gives you intentional
shadowing.Functions
def/-> — the one concept shaped just like Python’s own.
