@Override 
	public boolean equals(Object o) { 
        if (!(o instanceof Tuple_comparable))
            return false;
        Tuple_comparable oo = (Tuple_comparable)o; 
        if( oo.arg1_type.length() != this.arg1_type.length() )
        	return false; 
        if( oo.relation.length() != this.relation.length() )
        	return false; 
        if( oo.arg2_type.length() != this.arg2_type.length() )
        	return false; 
        if( !oo.arg1_type.equals( this.arg1_type ) )
        	return false; 
        if( !oo.arg2_type.equals( this.arg2_type ) )
        	return false; 
        if( !oo.relation.equals( this.relation ) )
        	return false;         	
        return true; 
	}