Equality for expressions. The difference between
ExprEq is that
ExprEq allows comparison of expressions with different value types. It is
assumed that when the types differ, the expressions also differ. The reason
for allowing comparison of different types is that this is convenient when
the types are existentially quantified.