deepHash function
A hash code that matches deepEquals: equal contents always give equal hashes.
Implementation
int deepHash(Object? value) {
return switch (value) {
List() => Object.hashAll(value.map(deepHash)),
Map() => Object.hashAllUnordered(
value.entries.map((e) => Object.hash(deepHash(e.key), deepHash(e.value))),
),
Set() => Object.hashAllUnordered(value.map(deepHash)),
_ => value.hashCode,
};
}