Overridden Overload Resolution

When override gets involved, overload resolution becomes quite a puzzle.

Recursion Is Dangerous

Recursive functions are elegant but dangerous to use in Swift.

Raw Value Types

Any LiteralConvertible can be enumeration raw values.

Reorder Defaulted Function Arguments

Defaulted arguments are allowed to be reordered.

Iterate, Generate, Destroy

Destructive iteration sounds horrifying but your sequences are safe.

Unify Type Properties and Methods

The coexistence of ‘static’ and ‘class’ keywords is confusing. We should unify type properties and methods in Swift.

Expose Mutable Properties as Immutable

It is a common API design pattern. But how to do it in Swift is not well known.