public boolean isUndefined()
    {
        if (getType() == TYPE_UNDEFINED)
            {
            return true;
            }

        if ((getType() == TYPE_SET) ||
                (getType() == TYPE_SEQUENCE) ||
                (getType() == TYPE_BAG))
            {
            if (getSetType() == null)
                {
                return true;
                }
            return getSetType().isUndefined();
            }

        if (getType() == TYPE_TUPLE)
            {
            int i;
            for (i = 0; i < m_tupleTypes.size(); i++)
                {
                if (((AstType) m_tupleTypes.get(i)).isUndefined())
                    {
                    return true;
                    }
                }
            }

        return false;
    }