Earlier quoted context omitted.
im saying those with a propensity to build such systems invariably choose strongly typed languages and in those languages that is the culture and the language encourages it. Eg.rewriting base classes to use IWritableStream instead of looking up the write method and calling it.
You seem to be confusing Java-like interfaces and design patterns with types. That's not representative of what great type systems can do for you.
The type system of swift is much closer to java than to that of haskell. (Or whatever language you think has a 'great' type system)
For example in F# if you just use one method the type system will infer that you need an object that has that method. (especially if that method is an operator)
eg. let add a b = a + b will work on any pair of objects that have the + operator defined. That is a good and useful type system, what swift has just makes you type more for little benefit.
eg. making types is easy, reflecting methods is hard. (it should be noted that swift effectively doesn't support reflection)