We formalize a partial evaluator for Eugenio Moggi's computational metalanguage. This formalization gives an evaluation-order independent view of binding-time analysis and program specialization, including a proper treatment of call unfolding. It also enables us to express the essence of 'control-based binding-time improvements' for let expressions. Specifically, we prove that the binding-time improvements given by 'continuation-based specialization' can be expressed in the metalanguage via monadic laws. Downloaded: 24 Mar 2015 IP address: 180.211.214.167A computational formalization for partial evaluation 509 above (Bondorf and Danvy 1991), call-by-value partial evaluators insert residual let expressions to name dynamic expressions that should not be duplicated. With such a strategy, the residual program reads λz . let a = z × z in 11 − (a + a).This solution of inserting let expressions is effective, but ad hoc, in that there were no corresponding let expressions in the source program. In contrast, let expressions are an integral part of Moggi's computational metalanguage. Using this metalanguage, the source program can be rewritten as follows: