Software engineering
Programming language theory
Functional programming
Type systems
Program analysis
Generalized algebraic data type
Type inference
Algebraic data type
Algorithm
Type theory
Mathematics
Data types