BoundDagEvaluation.Equals(BoundDagEvaluation other) compares original input and ignores any type evaluations (see #35669). That seems misleading for a general Equals method.
Since the method is only used for testing equivalence, perhaps Equals(BoundDagEvaluation) should be renamed (perhaps IsEquivalentEvaluation) and the GetHashCode() override could be removed.
BoundDagEvaluation.Equals(BoundDagEvaluation other)compares original input and ignores any type evaluations (see #35669). That seems misleading for a generalEqualsmethod.Since the method is only used for testing equivalence, perhaps
Equals(BoundDagEvaluation)should be renamed (perhapsIsEquivalentEvaluation) and theGetHashCode()override could be removed.