functional data structures
handling errors without exceptions
strictness and laziness
purely functional state