Since most methods that return a new list will (attempt to) return a list
object of the same type as their parent, this can be useful to avoid type
check failures in a method chain that creates intermediate lists.