My own thinking about this lead me to this proposal:

  * If we have a module M with a type T and a proc p that takes T as a first 
parameter, attach 'p' to 'T' much like in conventional OOP languages.
  * When you do `from M import T` all its operations are available too but only 
via the dot call syntax, `obj.foo`.



This will also have further benefits for how to do symbol bindings in generics 
later on, if a type implements an `==` and `hash` the `from x import T` syntax 
should not lead to the hiding of these operations. Plenty of operations are 
affected by this, they should be more like `override` than like `overload`. 

Reply via email to