_filterExpr = new CastExpr(_filterExpr, Type.NodeSetDTM);
_filterExpr = new CastExpr(_filterExpr, Type.NodeSet);
    public Type typeCheck(SymbolTable stable) throws TypeCheckError {	final Type ftype = _filterExpr.typeCheck(stable);	if (ftype instanceof NodeSetDTMType == false) {	    if (ftype instanceof ReferenceType)  {		_filterExpr = new CastExpr(_filterExpr, Type.NodeSetDTM);	    }	    else if (ftype instanceof NodeType)  {		_filterExpr = new CastExpr(_filterExpr, Type.NodeSetDTM);	    }	    else {		throw new TypeCheckError(this);	    }	}	// Wrap single node path in a node set	final Type ptype = _path.typeCheck(stable);	if (!(ptype instanceof NodeSetDTMType)) {	    _path = new CastExpr(_path, Type.NodeSetDTM);	}	return _type = Type.NodeSetDTM;	    }