Added type inference, and a "print" function that
uses it. print(x) translates to the relevant
printf statement in c.