Duck typing by having an appropriately named attribute is not my favorite since that doesn't guarantee that the object really quacks like an `EarthLocation` and that the `longitude` is even an `Angle`.  But other people have different opinions here...