code: function combineNumbers(types) {
    var typeNames = ['int', 'long', 'float', 'double'];
    var superIndex = -1;
    var superType = null;
    var i, l, type, index;
    for (i = 0, l = types.length; i < l; i++) {
      type = types[i];
      index = typeNames.indexOf(type.typeName);
      if (index > superIndex) {
        superIndex = index;
        superType = type;
      }
    }
    return superType;
  }
docs: Combine number types.
  
  Note that never have to create a new type here, we are guaranteed to be able
  to reuse one of the input types as super-type.