Reminder: If you’re running into limitations with default parameters (for example, the value can’t be computed, they can’t specialize a generic, defaults don’t exist in literals), you can always replace a default with an explicit overload.

func f(x: Int = 0) {}

is the same as

func f(x: Int) {}
func f() { f(0) }

stackoverflow.com/questions…