In my opinion it would be worth adding some syntax for defining an interface for abstract types. It should give us nice error messages and clean way to document an interface.
This is quite similar to the C++ concepts but as it is already possible to restrict the "template parameter" in Julia, the only missing thing is to define the interface for an abstract type.