Immutability, Pattern Matching, Type Theory, Pure Functions, Type Systems, Monads, Haskell, OCaml, Immutability, Pure Functions, Monads, Agda