On Thu, Nov 3, 2011 at 5:11 PM, Paterson, Ross <R.Paterson@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 definition.

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 class.

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

Balazs