Visualising the execution of functional programming languages by stepping through a graphical AST representation: https://danghica.blogspot.co.uk/2018/03/copying-vs-sharing-in-functional.html