Software engineering
Declarative programming
Computer programming
Functional programming
Monad
Evaluation strategy
Lambda calculus
Adjoint functors
Haskell
Type class
Ur