1 min readMar 11, 2019
Happily, you didn’t list fast compilation times as one of your requirements — since this requirement here, together with inferred typing, makes 1) compilation, especially to machine code, a lot slower and 2) either precludes use of dynamic loading, or requires additional runtime data, and runtime checks, — as you will need a way to structurally compare objects that are not part of the same binary.
And … for what exactly? What benefit does this give over traits, or declared interfaces?