Couvre les bases des langues formelles, y compris les alphabets, les mots et les langues, ainsi que des opérations comme la concaténation et l'inversion.
Couvre les concepts d'algèbre abstraite en utilisant des classes de type dans Scala, y compris la définition des monoïdes, la généralisation des fonctions de réduction et les lois de classe de type.
Couvre l'addition de fractions et de propriétés de nombres rationnels, en mettant l'accent sur l'associativité et les fractions de somme avec le même dénominateur.