functions as arguments
polymorphic types and functions as arguments
anonymous functions