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