To introduce optional arguments for function, I’m thinking about new syntax of vector like this:
[a b c? d? ...rest]
But we also need to think about how subtyping works with it.
[x] <: [x?] ;; T
[x?] <: [x] ;; F
[] <: [x?] ;; T
[x?] <: [] ;; T
[x?] <: [x?] ;; T