public bool Equals(Failure <TFailureCode> other) => FailureCodeComparer.Equals(FailureCode, other.FailureCode) && FailureMessageComparer.Equals(FailureMessage, other.FailureMessage);
public override int GetHashCode() => HashCode.Combine( EqualityContract, FailureCodeComparer.GetHashCode(FailureCode), FailureMessageComparer.GetHashCode(FailureMessage));