public boolean equals(final Object o) {
		if (this == o) {
			return true;
		}
		if (!(o instanceof Type)) {
			return false;
		}
		Type t = (Type) o;
		if (sort != t.sort) {
			return false;
		}
		if (sort == OBJECT || sort == ARRAY) {
			if (len != t.len) {
				return false;
			}
			for (int i = off, j = t.off, end = i + len; i < end; i++, j++) {
				if (buf[i] != t.buf[j]) {
					return false;
				}
			}
		}
		return true;
	}