compare -is:module

Compare portions of two arrays. No bounds checking is performed.
Lexicographically compare a list of attributes of two records. Example:
compare [comparing fst, comparing snd]
Compare two strings for canonical equivalence. Further options include case-insensitive comparison and codepoint order (as opposed to code unit order). Canonical equivalence between two strings is defined as their normalized forms (NFD or NFC) being identical. This function compares strings incrementally instead of normalizing (and optionally case-folding) both strings entirely, improving performance significantly. Bulk normalization is only necessary if the strings do not fulfill the FCD conditions. Only in this case, and only if the strings are relatively long, is memory allocated temporarily. For FCD strings and short non-FCD strings there is no memory allocation.
Compares two Lua values. Returns True if the value at index idx1 satisfies op when compared with the value at index idx2, following the semantics of the corresponding Lua operator (that is, it may call metamethods). Otherwise returns False. Also returns False if any of the indices is not valid. The value of op must be of type RelationalOperator: EQ: compares for equality (==) LT: compares for less than (<) LE: compares for less or equal (<=) Wraps hslua_compare. See also lua_compare.
Constant-time comparison
Compare two values, using their natural ordering.
Compare function, returning either Just an Ordering or Nothing.
Compare two trees with respect to set inclusion, using the given equality function for intersecting keys. If any intersecting keys hold unequal values, the trees are Incomparable.
Compare two trees with respect to set inclusion, using the given equality function for intersecting keys. If any intersecting keys hold unequal values, the trees are Incomparable.
Compare two trees with respect to set inclusion, using the given equality function for intersecting keys. If any intersecting keys hold unequal values, the trees are Incomparable.
Compare two trees with respect to set inclusion over the given color.
Generic comparison for heterogeneous vectors. It works same way as Ord instance for tuples.
>>> data A = A Int Char deriving Generic

>>> instance HVector A

>>> compare (A 1 'c') (A 2 'c')
LT
Compare branches on the kind of its arguments to either compare by Symbol or Nat.
Perform a compare operation on the operands left and right * op: operator * left: left operand * right: right operand
Type-level compare for totally ordered data types.

Example

>>> :kind! Eval (Compare "a" "b")
Eval (Compare "a" "b") :: Ordering
= LT
>>> :kind! Eval (Compare '[1, 2, 3] '[1, 2, 3])
Eval (Compare '[1, 2, 3] '[1, 2, 3]) :: Ordering
= EQ
>>> :kind! Eval (Compare '[1, 3] '[1, 2])
Eval (Compare '[1, 3] '[1, 2]) :: Ordering
= GT
Subphase for Termination.
Type family for comparing two numbers. It's expected that for any two valid n and m 'Compare n m' is equal to IsLess when 'n<m', IsEqual when 'n=m' and IsGreater when 'n>m'.
Use compareLength xs n as a safer and faster alternative to compare (length xs) n. Similarly, it's better to write compareLength xs 10 == LT instead of length xs < 10. While length would force and traverse the entire spine of xs (which could even diverge if xs is infinite), compareLength traverses at most n elements to determine its result.
>>> compareLength [] 0
EQ

>>> compareLength [] 1
LT

>>> compareLength ['a'] 1
EQ

>>> compareLength ['a', 'b'] 1
GT

>>> compareLength [0..] 100
GT

>>> compareLength undefined (-1)
GT

>>> compareLength ('a' : undefined) 0
GT