public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = Resting.GetHashCode();
         hashCode = (hashCode * 397) ^ Squeezing.GetHashCode();
         hashCode = (hashCode * 397) ^ (int)HandSide;
         return(hashCode);
     }
 }
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (Resting != null ? Resting.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ Squeezing.GetHashCode();
         hashCode = (hashCode * 397) ^ (QualificationsOfTree != null ? QualificationsOfTree.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (int)HandSide;
         return(hashCode);
     }
 }
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = Resting.GetHashCode();
         hashCode = (hashCode * 397) ^ LeftSqueezing.GetHashCode();
         hashCode = (hashCode * 397) ^ RightSqueezing.GetHashCode();
         hashCode = (hashCode * 397) ^ BothSqueezing.GetHashCode();
         return(hashCode);
     }
 }
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (Resting != null ? Resting.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ LeftSqueezing.GetHashCode();
         hashCode = (hashCode * 397) ^ RightSqueezing.GetHashCode();
         hashCode = (hashCode * 397) ^ BothSqueezing.GetHashCode();
         // FIXME: this is a bad hashcode, qualifications list is ignored due to list hashcode
         return(hashCode);
     }
 }