Variants should be hashable so that common Python operations like `list(set(variants))` to get a unique list of Variant objects will work.