5.1 Closing over data types5.2 New Array APIs: {flat, flatMap}5.2.1 Array.prototype.flat5.2.2 Array.prototype.flatMap5.3 The map/compose correspondence5.4 Universal contracts5.4.1 Functors5.4.2 Monads5.5 Contextual validation with higher-order functions5.5.1 Kinds of ADTs5.5.2 Choices5.5.3 Modeling success and failure with the Validation monad5.5.4 Composing with monads5.5.5 Higher-kinded composition with Validation5.5.6 Point-free coding with monads5.5.7 Reducing complex data structures5.5.8 Third-party integration5.6 Higher-kinded composition with method extraction and dynamic bindingSummary