Support for points in different metric spaces
Using a higher order function instead of a type class