strictly enforcing safe borrowing of data
functions, methods and closures to operate on data
tuples, structs and enums to aggregate data
pattern matching to select and destructure data
traits to define behaviour on data