Abstract. Binding-time analysis is a crucial part of o~ine partial evaluation. It is often specified as a non-standard type system. Many typebased binding-time analyses are reminiscent of simple type systems with additional features like recursive types. We make this connection explicit by expressing binding-time analysis with annotated type systems that separate the concerns of type inference from those of binding-time annotation. The separation enables us to explore a design space for bindingtime analysis by varying the underlying type system and the annotation strategy independently. The result is a classification of different monova~iant binding-time analyses which allows us to compare their relative power. Due to the systematic approach we uncover some novel analyses.A partial evaluator separates the computation of a source program into two or more stages [7,20]. Using the (static) input of the first stage it transforms a source program into a specialized residual program. Application of the residual program to the (dynamic) input of the second stage yields the same answer as application of the source program to the entire input. The binding time of an input is the information whether it is static or dynamic.Binding-time analysis (BTA) is a prepass of a partial evaluator that annotates each expression in the source program with the earliest (static is earlier than dynamic) time at which it can be evaluated. The actual specializer is a mere interpreter of annotated programs that executes the static expressions and generates code for the remaining ones.Binding-time analyses come in two flavors: A monovariant BTA computes a single mapping of program points to binding-times, whereas a polyvariant BTA allows for several such mappings. Both alternatives have their merits. Monovariant BTAs are simple and efficient to implement [4,14,15,18,20]. However, in some applications static and dynamic values flow through the same program points, which forces a monovariant BTA to annotate the program points as dynamic. A polyvariant BTA [5,6] yields better results in these cases, but is also considerably more expensive.In the current work we concentrate on monovariant BTAs for the lambda calculus as they are used in many partial evaluators I4, 14,15,18]. Our analyses achieve some degree of polyvariance because we admit liberal binding-time coercions and rely on a more precise inclusion-based flow analysis framework.BTA is often presented as a monolithic analysis which makes it unnecessarily hard to understand and to reason about [2,3,14,18,21]. Recent work has shown the possibility to modularize BTA into several stages [4,12,13]. All of these