def canonical_circulation(elements: T, key: Optional[Callable[[T], bool]] = None) -> T:
return min(get_circulations(elements), key=key)<EOL>
Get get a canonical representation of the ordered collection by finding its minimum circulation with the
    given sort key