    # File lib/rvg/deep_equal.rb, line 18
                    def deep_equal(other)
                        ivs = self.instance_variables

                        ivs.each do |iv|
                            itv = self.instance_variable_get(iv)
                            otv = other.instance_variable_get(iv)
                            if itv.respond_to?(:deep_equal)
                                if itv.equal?(otv)
                                    puts "#{iv} has deep_equal but self.#{iv} and other.#{iv} are the same object."
                                    return false
                                end
                                if !itv.deep_equal(otv)
                                    puts "Not equal.\nself.#{iv}=#{itv.inspect}\nother.#{iv}=#{otv.inspect}"
                                    return false
                                end
                            else
                                case itv
                                    when Float, Symbol, TrueClass, FalseClass, Fixnum, NilClass
                                        return false if itv != otv
                                    else
                                        if itv.equal?(otv)
                                            puts "#{iv} is dup-able but self.#{iv} and other.#{iv} are the same object."
                                            return false
                                        end
                                        if itv != otv
                                            puts "Not equal.\nself.#{iv}=#{itv.inspect}\nother.#{iv}=#{otv.inspect}"
                                            return false
                                        end
                                end
                            end
                        end

                        return true
                    end