public final boolean isSameAs( PatternNode q ) {
public boolean isSameAs(PatternNode q) {
    public final boolean isSameAs( PatternNode q ) {        switch( this ) {        case ConstrPat(_):            switch (q) {            case ConstrPat(_):                return q.type.isSameAs( this.type );            }            return false;        case SequencePat(_, int plen):            switch (q) {            case SequencePat(_, int qlen):                return (plen == qlen) && q.type.isSameAs( this.type );            }            return false;        default:            return subsumes( q );        }    }