  Complexity theory provides a wealth of complexity classes for analyzing the
complexity of decision and counting problems. Despite the practical relevance
of enumeration problems, the tools provided by complexity theory for this
important class of problems are very limited. In particular, complexity classes
analogous to the polynomial hierarchy and an appropriate notion of problem
reduction are missing. In this work, we lay the foundations for a complexity
theory of hard enumeration problems by proposing a hierarchy of complexity
classes and by investigating notions of reductions for enumeration problems.
