My use cases would be virtually identical to the vtable usage of the standard 
library for things like streams. I just find that syntax extremely annoying and 
would love to have it abstracted away without having additional runtime costs.

In my perfect world this would be an addition to concepts, so that they can 
either make the function implictely generic as they do now or do dynamic 
dispatch via implicitely generated vtable.

With that said I also would prefer the pointers to be dereferenced before the 
proc is called. That way keeping it alive out of scope would be save and you 
still could use a var param to get it mutably. That way interfaces would also 
mirror the static duck typing awesomeness and clean syntax you generally have 
in nim while also having the advantages of dynamic dispatch where necessary.

Finally, I do agree that type reflectoon on interfaces doesn't really seem 
necessary. The tight coupling seems to remove the whole purpose the interface 
had in the first place. An if you aren't interested in that there are, like, 
three other ways to do the same thing with less overhead and ugly hacks. Any 
use case that couldn't be solved with variant types, methods or generics more 
cleanly?

Reply via email to