Use ticks instead of quotes when printing a single char.
Get the ptr type of a non reference type, in order to meet the special printValue/Type function convention.
Before proceeding to call the special user-specific function check for the right overload.

This implementation is a bit cumbersome, but the key advantage is that we do not
create AST nodes on the heap. We create some nodes which will help the overload
candidate selector to do the selection. After it returned true/false (there is/isn't
proper function to call) we free all the used memory and proceed in calling the
user defined function.