Evaluation contexts provide a mechanism to compactly express the structural congruence rules of reductions (which constrain the choice of reductions that can be performed next, thus defining both the order of evaluation and whether subexpressions are evaluated lazily).

An evaluation context , sometimes written , is a -term or a metaexpression representing a family of -terms with a special variable called the hole. If is an evaluation context, then represents with the term substituted for the hole.

Every evaluation context represents a context rule

Context can be nested and is often expressed using a grammar.


The set of all valid evaluation contexts for the CBV -calculus is represented by the grammar