    /*
     *  call-seq;
     *     query.eql?(other_query) -> bool
     *     query == other_query -> bool
     *
     *  Return true if +query+ equals +other_query+. Theoretically, two queries are
     *  equal if the always return the same results, no matter what the contents
     *  of the index. Practically, however, this is difficult to implement
     *  efficiently for queries like BooleanQuery since the ordering of clauses
     *  unspecified. "Ruby AND Rails" will not match "Rails AND Ruby" for example,
     *  although their result sets will be identical. Most queries should match as
     *  expected however.
     */
    static VALUE
    frt_q_eql(VALUE self, VALUE other)
    {
        GET_Q();
        Query *oq;
        Data_Get_Struct(other, Query, oq);
        return q->eq(q, oq) ? Qtrue : Qfalse;
    }