Reimplemented the evaluation strategy using the De Bruijn notation (in Haskell).