Switched to Immutable.js data structures and removed '&' operator, predicate types and some unused parts of the prelude