\begin{schemeregion} In section~\ref{sec:varar-semi}, we saw the basics of typing variable-arity polymorphism. The key ingredients are \begin{itemize} \item Distinguishing uniform from non-uniform variable-arity functions. \item Dotted type variables and dotted pre-types. \item Special handling of \scheme|map| on terms with dotted pre-types. \item Handling of \scheme|apply|. \end{itemize} \noindent This chapter synthesizes those insights into a formal calculus whose type system is able to statically reject programs that misapply both uniform and non-uniform variable-arity functions. \end{schemeregion}