Wow. Thanks for that post. I think this belongs in the docs somewhere or on a wiki.
I came across this issue when I was change the prototype of a base method but forgot to change one of the child objects. So for that specific child object it was using the base method. Would using the base pragma have the Nim compiler fail if the child prototypes didn't match the parent?