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?

Written by

Science Fiction, Tech, sarcasm, and philosophical ramblings about the Universe.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store