added ability to choose to print intermediate representation

string_of_intermediate function still has to be written in intermediate.ml