YAP (was Re: Proposal: Remove Show and Eq superclasses of Num)

Balazs Komuves bkomuves at gmail.com
Thu Nov 3 20:01:25 CET 2011

On Thu, Nov 3, 2011 at 5:11 PM, Paterson, Ross <R.Paterson at city.ac.uk>wrote:

> Units are invertible elements, and two elements are associates if they're
> factors of each other.  So association is an equivalence relation; in
> particular the associates of 1 are the units, and the only associate of
> 0 is itself.
> Now choose a member from each association equivalence class to be the
> canonical associate for all the members of that class, choosing 1 as
> the canonical associate for the unit class.  Because there are no zero
> divisors, that uniquely determines the canonical unit for each element.

It seems to me that a typical Euclidean domain does not have any kind of
meaningful canonical associate / unit map. Examples:

- The Gaussian integers Z[i] (units are 1,-1,i,-i; what would be the
associated element of 5+7i ?)
- Formal power series K[[x]] over a field (units are every series with
nonzero constant coefficients),
- and probably just about any other interesting structure satisfying the

A function "a -> a" in a type class suggests to me a canonical mapping.
Thus, I would
advocate against putting associate/unit into such a Euclidean domain type

(Independently of this, I also find the name "unit" a bit confusing for
which would be better called "an associated unit"; "unit" is already a very
overloaded word)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20111103/247b69d9/attachment.htm>

More information about the Libraries mailing list