An efficient interpreter for the lambda-calculus