I am writing a polymorphic function that implements an algorithm that should work in all euclidean domains. My function should work in all euclidean domains, even ones that have not been implemented yet. My algorithm uses the euclidean function. How do I polymorphically get the canonical euclidean function for my particular domain?