Well, for me the BEST "interfaces" would be explicit, namespaced concepts,
actually (hello, Rust!). Please note the biggest problem of inheritance-based
interfaces: you cannot add one to a type already in existence when you define
the interface. Also, both interfaces and Nim's concepts are, let's say,
duck-signatured, meaning two interfaces or concepts requiring a routine of the
same name and arguments either have to share it or, if return type or
attributes are in conflict, cannot be fulfilled for the same type.