A framework for working in a functional programming paradigm in