In theory slicing can result in a collection with an element type that is different from the element type of the original collection. Therefore, I think the case at
|
case (BoundDagIndexerEvaluation s1, BoundDagIndexerEvaluation s2): |
should also check that the result type for both indexer evaluations is equal.