stateless
stateless copied to clipboard
Relax Hashable type bounds on effect ability types
Currently abilities must be subtypes of typing.Hashable. This is solely due to the fact that looking up abilities is cached using functools.cache.
This requirement can be relaxed to allow unhashable ability types by only using the cached lookup when the ability is actually hashable.