  We review some semantic and syntactic complexity classes that were introduced
to better understand the relationship between complexity classes P and NP. We
also define several new complexity classes, some of which are associated with
Mersenne numbers, and show their location in the complexity hierarchy.
