deepCopy method
https://stackoverflow.com/questions/64594543/how-to-deep-copy-nested-list-in-dart
so called shallow copy
Implementation
List<E> deepCopy() {
var newList = [];
forEach((el) {
if (el is List) {
newList.add(el.deepCopy());
} else if (el is Set) {
newList.add((el.deepCopy()));
} else if (el is Map) {
newList.add((el.deepCopy()));
} else {
newList.add(el);
}
});
return newList.cast<E>();
}