List<Type> sigToTypeParams() {
        List<Type> tvars = List.nil();
        if (signature[sigp] == '<') {
            sigp++;
            int start = sigp;
            sigEnterPhase = true;
            while (signature[sigp] != '>')
                tvars = tvars.prepend(sigToTypeParam());
            sigEnterPhase = false;
            sigp = start;
            while (signature[sigp] != '>')
                sigToTypeParam();
            sigp++;
        }
        return tvars.reverse();
    }
List < Type > sigToTypeParams ( ) { List < Type > tvars = List . nil ( ) ; if ( signature [ sigp ] == '<' ) { sigp ++ ; int start = sigp ; sigEnterPhase = true ; while ( signature [ sigp ] != '>' ) tvars = tvars . prepend ( sigToTypeParam ( ) ) ; sigEnterPhase = false ; sigp = start ; while ( signature [ sigp ] != '>' ) sigToTypeParam ( ) ; sigp ++ ; } return tvars . reverse ( ) ; }
Convert signature to type parameters, where signature is implicit.