potential solution for print situation (and any other functions we want to define as polymorphic. in symtab, print is declared as taking an empty list of arguments. in check.ml, when we see the user trying to call print, we redefine print with the types of arguments they are calling it with --> this means that when we actually generate code to run the program, we will treat print as a user defined program in some sense?? not exactly sure what the implications are, but looking at occamldebugger, the output is perfect (use examples/tmp/tree.lrx as a test case to understand how functions are generally displayed)