Check for equality of multiple data types, including nested iterables.
bool deepEquals(Object? e1, Object? e2) { return const DeepCollectionEquality().equals(e1, e2); }