for now keeping ruff on 3.8 target version, need to sort out modules as well
ruff check --select I
- move to my.core.utils.itertools - more robust check for hashable types -- now checks in runtime (since the one based on types purely isn't necessarily sound) - add more testing