The aim of this project is to implement algorithms using (un)folds and adjoint (un)folds [Hinze, Wu, Gibbons, 2013].
For example, Recursion Schemes From Comonads (RSFCs) [Uustalu, Vene, Pardo, 2001] are used to implement Dynamic Programming which can improve the efficiency of recursive algorithms. Like any recursion scheme, they arise from an adjoint fold.