canonical
The canonical representative of this circle — useful for unoriented equivalence.
a.canonical == b.canonical detects the same point set under opposed orientations. The canonical orientation is the classic one (cw negative), negating all four components when it flips; the sign decision reads rounded components, so a == b implies a.canonical == b.canonical. The representative is rebuilt through copy, so a subclass comes back as its own class; an already-canonical circle returns this.