A reduction engine for the lambda calculus