Any reason struct SIMD is missing the EqualityComparable trait? It appears to have the methods implemented.
As shown below, I’m seeing the error: argument type 'SIMD[uint64, 1]' does not conform to trait 'EqualityComparable & Copyable & Movable' Mojo 25.4.0.dev2025060805
foos = List[UInt64]()
some_foo = 12345
# failed to infer parameter #2, argument type 'SIMD[uint64, 1]' does not conform to trait 'EqualityComparable & Copyable & Movable'
if some_foo in foos: # <-- Error here
pass
struct SIMD[dtype: DType, size: Int](
Absable,
Boolable,
Ceilable,
CeilDivable,
Copyable,
Movable,
DevicePassable,
ExplicitlyCopyable,
Floatable,
Floorable,
Hashable,
_HashableWithHasher,
Indexer,
PythonConvertible,
Representable,
Roundable,
Sized,
Stringable,
Writable,
):
...
Yep, my 2c is that we need to fix this. SIMD not conforming to equatable and comparable will break pretty much all generic algorithms from working with floating point and sized integer types, and will prevent merging Int and UInt into SIMD someday.