It's possible to put the various primitive functions together to this.
local ? ?open PolyML ? ?open NameSpace in ? ?fun showStruct structName = ? ? ? ?prettyPrint(TextIO.print, 70 (* line width*)) ? ? ? ? ? ?(displayStruct(valOf(#lookupStruct globalNameSpace structName), ? ? ? ? ? ? ? 1000(*depth*), globalNameSpace)) end;
That's great, thank you.
The compiler does maintain the declaration location of identifiers and in the experimental IDE it's possible to click on an identifier and go to the source file where it was declared.
I'd love if the locations stored by the compiler were exposed by a procedure too, since I'd rather avoid an IDE.
Again, it's possible that there are hooks already to do this but they aren't easily accessible. ?All this could be done with time but it really requires someone to work on improving all this.
Are there many developers? Who can join them?