public bool Equals(EntityB other)
    {
        // FIXED - ensure Equals is reflexive, symmetric and transitive even when dealing with derived types
        var initial = EqualityHelper.EqualsQuickReject(this, other);

        if (initial != null)
        {
            return(initial.Value);
        }
        return(this.Bar == other.Bar);
    }