# luan:Luan.luan

- `error(message)`: throws an error table; in `catch e`, `e.message` is the message. `error()` with no message is the fail-fast in `local f = X.f or error()`.
- `pairs(t)`: iterates the list part (keys 1..n) first, then the other keys in insertion order. Reassigning a key keeps its position. A numeric key that isn't contiguous with the list (e.g. `[5]` when 4 is missing) is in the insertion-ordered part.
- `ipairs(t)`: iterates 1..n, stopping at the first nil.
- `get_local_only(obj,key)`, `set_local_only(obj,key,value)`: a value per interpreter, keyed by (obj,key). Setting nil removes it. Not copied to interpreters cloned from this one. Used for per-request state.
- `get_local_cloned(obj,key)`, `set_local_cloned(obj,key,value)`: the same, but copied into interpreters cloned from this one.
