code: function getType(type, method) {
      var generics = [];
      switch (type) {
        case 'Array':
          type = 'T[]';
          generics.push('T');
          break;
        case 'New Array':
          type = 'U[]';
          generics.push('T');
          generics.push('U');
          break;
        case 'ArrayElement':
          type = 'T';
          generics.push('T');
          break;
        case 'Mixed':
          type = 'T';
          generics.push('T');
          break;
        case 'Property':
          type = 'T';
          generics.push('T');
          break;
        case 'NewArrayElement':
          type = 'U';
          generics.push('T');
          generics.push('U');
          break;
        case 'NewProperty':
          type = 'U';
          generics.push('T');
          generics.push('U');
          break;
        case 'RangeElement':
          type = 'T';
          generics.push('T');
          break;
        case 'String':
        case 'Number':
        case 'Boolean':
          type = type.toLowerCase();
          break;
      }
      if (method && generics) {
        addMethodGenerics(method, generics);
      }
      return type;
    }
docs: /* ------------ Types --------------