Equality for expressions. The difference between Eq and ExprEq is that
ExprEq allows comparison of expressions with different role and value type.
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.