Lisps that return nil for (car nil) are implementing "optional chaining". yes, it chains: (cadar nil) -> nil ;; the nil object doesn't have a "car" (cadar '((b c))) -> c ;; i.e. (car (cdr (car '((b c))))) -> c This is exactly like, in Swift-like syntax, doing '((b c)).car?.cdr?.car? where the ? indicates "don't blow up if it's nil", except the "don't blow up" is built into car and cdr . This freedom was introduced in…
The patent protects how a compiler implements some features in a multi-target environment. Nothing to do with optional chaining.