5.1 How to classify data collections5.2 Different types of lists5.3 Relative expected list performance5.3.1 Trading time against memory space and complexity5.3.2 Avoiding in-place mutationUpdate in place5.4 What kinds of lists are available in Kotlin?5.4.1 Using persistent data structures5.4.2 Implementing immutable, persistent, singly linked lists5.5 Data sharing in list operations5.6 More list operations5.6.1 Benefiting from object notation5.6.2 Concatenating lists5.6.3 Dropping from the end of a list5.6.4 Using recursion to fold lists with higher-order functions (HOFs)5.6.5 Using variance5.6.6 Creating a stack-safe recursive version of foldRight5.6.7 Mapping and filtering listsSummary