Canonical numDomainType := NumDomainType type numMixin.
Canonical numFieldType := [numFieldType of type].

(* Specifications: *)
Lemma normK u : `|u| ^+ 2 = u * conj u.
Definition conjMixin :=
ImaginaryMixin (svalP (imaginary_exists closedFieldType))
(fun x => esym (normK x)).