Describes the methods a Collection should implement. A collection is an immutable list of elements exposing a number of traversing and extracting method for generating other collections.
A collection is an immutable list of elements with a handful of functions to iterate, group, transform and extract information from it.