;; Swift optionals over dyn values: nil is the absence. ??, !, a test's as, ;; and chaining through a map's field. let calls = 0 fn fallback(v) calls += 1 v fn describe(o, p) if o? as g g + 100 elif p? as h h + 200 else 0 ;; A kept if let with no else: the value, or nil. fn kept(o) -> dyn if o? as g then g * 2 fn power(car) = car.engine?.power fn run(a, n) println(a ?? 7, n ?? 7) println(n ?? n ?? 9) println(a ?? fallback(1), n ?? fallback(2), calls) println(a!) println(describe(a, n), describe(n, a), describe(n, n)) println(kept(a), kept(n)) let car = {:name "a" :engine {:power 90}} let bare = {:name "b" :engine nil} println(power(car), power(bare)) println(power(car) ?? -1, power(bare) ?? -1) println(car.engine?.power ?? -1) fn main() run(3, nil)