  We study the equivalence of eval-readback and eval-apply big-step evaluators
in the general setting of the pure lambda calculus. The equivalence extends to
evaluators in other lambda calculi (applied and typed) if the evaluation order
of redexes (i.e. the evaluation strategy) is realisable. We present a proof
that one-step equivalence holds when (1) the `readback' stage satisfies
straightforward well-formedness provisos, (2) the `eval' stage implements a
`uniform' strategy, and (3) the eval-apply evaluator implements a `balanced
hybrid' strategy that has `eval' as a subsidiary strategy. The proof proceeds
by application of the `lightweight fusion by fixed-point promotion' program
transformation on evaluator implementations to fuse readback and eval into the
balanced hybrid. The proof can be followed with no previous knowledge of the
transformation. We use Haskell 2010 as the implementation language, with all
evaluators written in monadic style to guarantee semantics (strategy)
preservation, but the choice of implementation language is immaterial.
  To determine the scope of the equivalence, we provide an extensive survey of
the strategy space using canonical eval-apply evaluators. We discuss the
strategies' properties and some of their uses and abstract machines. We improve
the formal definition of uniform and hybrid strategy, and use it to structure
the strategy space and to obtain the generic higher-order evaluators used in
the proof that deliver all plain evaluators as fixed-points by instantiation.
We introduce a systematic notation for both evaluator styles and use it to
summarise strategy and evaluator equivalences, including (non-)equivalences
within a style and (non-)equivalences between styles not proven by the
transformation.
