Lambda calculus parser and evaluator implementation based on "Types and programming languages" by Benjamin Pierce in Scala