Resources for learning and using recursion schemes.
Latest commit 1dc74b0 Jan 21, 2017 @passy committed on GitHub Add Greg Pfeil's moonconf talk
Failed to load latest commit information.
.travis.yml Enable travis Dec 30, 2016 Add Greg Pfeil's moonconf talk Jan 21, 2017

Awesome Recursion Schemes Awesome Build Status

A curation of useful resources for learning about and using recursion schemes.


  • Practical Recursion Schemes - An introduction to pattern functors, fix points, anamorphisms, catamorphisms, paramorphisms and hylomorphisms, requiring very little prior knowledge.
  • An Introduction to Recursion Schemes - A three-part series in which you discover recursion schemes from scratch and implement a small subset of Edward Kmett's library.
  • Understanding Algebras - Bartosz Milewski explains F-algebras and shows how to use them in the context of catamorphisms.





  • Magic Read Along - Casual discussions about category theory that often bring up recursion schemes, including episode 33 which talks about Histomorphisms and Futumorphisms.


  • recursion-schemes for Haskell - The canonical implementation by Edward Kmett.
  • Matryoshka for Scala - Generalized folds, unfolds, and traversals for fixed point data structures.
  • purescript-matryoshka for PureScript - A work-in-process port of matryoshka.


This content is licensed under CC0.