@nicklockwood
Don’t know if these qualify as “advanced” so much as “oft overlooked,” but:
- reduce(into:) is useful
- underscores can make large numbers readable: 1_000_000
- ContinuousClock is useful
- If you want an “open enum” (i.e. clients of lib can add cases), don’t use enum; use e.g. `protocol Color` + possibly empty `struct Mauve: Color` for cases, then match with `value is Mauve`, or `case let value as Mauve` if you need to narrow the type of `value` when matched