protected override int doHashCode() { OtpErlangObject.Hash hash = new OtpErlangObject.Hash(9); int a = arity(); hash.combine(a); for (int i = 0; i < a; i++) { hash.combine(elems[i].GetHashCode()); } return hash.valueOf(); }