Monadification, Memoization and Dynamic Programmingby Simon Wimmer, Shuwei Hu and Tobias Nipkow22 May