public override bool Equals(object obj) { if (obj is OptionalType) return (OptionalType)obj == this; else return base.Equals(obj); }