Ok, so here's what I'll do unless someone objects: ==delegate remains the same ==return for functions, delegates, and pointers to functions, gets the return type ==function gets the prototype as a tuple (this breaks existing code) Also, is there a need for: ==class getting the base class?