# Documentation

class (C a, C a, Ord a) => C a whereSource

This is the type class of an ordered ring, satisfying the laws

a * b === b * a a + (max b c) === max (a+b) (a+c) negate (max b c) === min (negate b) (negate c) a * (max b c) === max (a*b) (a*c) where a >= 0

Note that abs is in a rather different place than it is in the Haskell 98 Prelude. In particular,

abs :: Complex -> Complex

is not defined. To me, this seems to have the wrong type anyway; Complex.magnitude has the correct type.