Collections in Immutable.js can have simple values, or they can have complex values such as other collections. These collections can in turn contain other collections, and so on. These deep structures are necessary to reflect the model of your application data. However, traversing nested hierarchies is error prone.