Fix broken type conversion call implementation

 - We need to properly order the function so that the one with the least
   number if type differences is the one that is tried first.