SEQUEL is a new-generation functional programming language, which allows the specification of types in a notation based on the sequent calculus. The sequent calculus notation suffices for the construction of types for type checking and for the specification of arbitrary logics. Compilation techniques derived from both functional and logic programming are used to derive high-performance ATPs from these specifications.