Annotation of researchv10no/cmd/sml/doc/refman/equality.tex, revision 1.1

1.1     ! root        1: \chapter{Equality}
        !             2: 
        !             3: The equality function \verb"op = : ''a * ''a -> bool" is available at
        !             4: all types \verb"''a" except function types, abstract types, and the
        !             5: types constructed from them.  In fact, type variables that begin
        !             6: with two primes are special: they stand only for types that admit
        !             7: equality.
        !             8: 
        !             9: Two values are tested for equality as follows, depending on the kind
        !            10: of value:
        !            11: \begin{description}
        !            12: \item[Primitive types] like integers, reals, and strings have
        !            13: equality functions with the conventional behavior.
        !            14: 
        !            15: \item[Function types] cannot be compared (``do not admit equality'').
        !            16: 
        !            17: \item[Reference types:] On references, equality means identity; a
        !            18: reference is equal to itself and to no other references, regardless
        !            19: of similar contents.
        !            20: 
        !            21: \item[Record types] may be compared if all their components admit equality.
        !            22: 
        !            23: \item[Datatypes] may be compared for equality if all of their
        !            24: constructed types admit equality.
        !            25: 
        !            26: \item[Opaque types] from functor parameters and abstractions do not
        !            27: admit equality unless the \verb"eqtype" keyword is used (instead of
        !            28: the \verb"type" keyword) in the
        !            29: signature defining them.
        !            30: \end{description}
        !            31: 
        !            32: The function \verb"op <> : ''a * ''a -> bool" is the inequality function;
        !            33: it is applicable to any equality type.
        !            34: 
        !            35: The comparison functions \verb">", verb"<", \verb"<=", and \verb">=" do not
        !            36: have this behavior; they are overloaded just for the types
        !            37: \verb"int", \verb"real", and \verb"string".

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.