Currently (that is, as of version 1.0.6), the documentation of Geq, including the one of its geq method, doesn’t seem to mention what geq is primarily about: checking of value equality. From what I understand, geq is a heterogeneous equality operator (checking equality of values whose type’s type parameters may differ) with the additional feature that it yields a witness of type parameter equality whenever the given values are equal. The present documentation, however, presents Geq and geq as essentially being about type equality (“decide the equality of types”, “produce a witness of type-equality”). It delves quickly into a comparisons with TestEquality, which isn’t very useful for people like me, who haven’t yet heard about this other class. However, only in this comparison I found hints that geq actually checks value equality. In my opinion, this should be mentioned much more prominently, perhaps similar to how I described geq above:
geq is a heterogeneous equality operator (checking equality of values whose type’s type parameters may differ) with the additional feature that it yields a witness of type parameter equality whenever the given values are equal.
That said, it should be noted that a full heterogeneous equality operator would probably allow the types of its arguments to be arbitrary; so maybe a more refined characterization of geq should be found.
Currently (that is, as of version 1.0.6), the documentation of
Geq, including the one of itsgeqmethod, doesn’t seem to mention whatgeqis primarily about: checking of value equality. From what I understand,geqis a heterogeneous equality operator (checking equality of values whose type’s type parameters may differ) with the additional feature that it yields a witness of type parameter equality whenever the given values are equal. The present documentation, however, presentsGeqandgeqas essentially being about type equality (“decide the equality of types”, “produce a witness of type-equality”). It delves quickly into a comparisons withTestEquality, which isn’t very useful for people like me, who haven’t yet heard about this other class. However, only in this comparison I found hints thatgeqactually checks value equality. In my opinion, this should be mentioned much more prominently, perhaps similar to how I describedgeqabove:That said, it should be noted that a full heterogeneous equality operator would probably allow the types of its arguments to be arbitrary; so maybe a more refined characterization of
geqshould be found.