private void CompareInternal(unit_or_namespace left, unit_or_namespace right) { if (left == null && right != null || left != null && right == null) throw_not_equal(left, right); if (left != null && right != null) { if (left.GetType() != right.GetType()) throw_not_equal(left, right); if (left is uses_unit_in) CompareInternal(left as uses_unit_in, right as uses_unit_in); else CompareInternal(left.name, right.name); } }