Packages & projects
Follow an idea between articles, recordings, and code.
These links connect the writing to relevant packages on Hackage. Historical examples may use different APIs; their original version-specific documentation links are preserved.
ad · GitHub
adjunctions · GitHub
algebra · GitHub
bound · GitHub
category-extras · GitHub
comonad · GitHub
- Live Coding — Session 25: Guanxi Review 2019
- Live Coding — Session 24: Dancing with Decision Diagrams 2018
- Live Coding — Session 23: Dancing Links, Part 2 2018
- Live Coding — Session 21: Relational Programming, Part 6 2018
- Live Coding — Session 20: Relational Programming, Part 5 2018
- Live Coding — Session 19: Relational Programming, Part 4 (Soul of a New Machine) 2018
- Live Coding — Session 17: Relational Programming, Part 3 2018
- Live Coding — Session 16: Relational Programming, Part 2 2018
- Live Coding — Session 15: Back from ICFP 2018
- Live Coding — Session 1: Commutativity 2018
- The State Comonad 2018
- Cellular Automata — Part III: A World in a Bottle 2013
- Cellular Automata — Part II: PNGs and Moore 2013
- Cellular Automata — Part I: From Theory to Pretty Pictures 2013
- A Product of an Imperfect Union 2011
- Monad Transformers from Comonads 2011
- Monads from Comonads 2011
- The Pointed-Set Comonad 2008
comonad-transformers · GitHub
comonads-fd · GitHub
concurrent-supply · GitHub
- Bound 2015
- On-line Lowest Common Ancestor 2015
constraints · GitHub
contravariant · GitHub
- Live Coding — Session 25: Guanxi Review 2019
- Live Coding — Session 24: Dancing with Decision Diagrams 2018
- Live Coding — Session 23: Dancing Links, Part 2 2018
- Live Coding — Session 21: Relational Programming, Part 6 2018
- Live Coding — Session 20: Relational Programming, Part 5 2018
- Live Coding — Session 19: Relational Programming, Part 4 (Soul of a New Machine) 2018
- Live Coding — Session 17: Relational Programming, Part 3 2018
- Live Coding — Session 16: Relational Programming, Part 2 2018
- Live Coding — Session 15: Back from ICFP 2018
- Live Coding — Session 1: Commutativity 2018
- Monads from Comonads 2011
data-lens · GitHub
- Mirrored Lenses 2012
discrimination · GitHub
distributive · GitHub
folds · GitHub
- Moore for Less 2015
- Conquering Folds 2013
- Parallel and Incremental CRCs 2013
free · GitHub
- Live Coding — Session 1: Commutativity 2018
- Moore for Less 2015
- Revisiting Matrix Multiplication — Part V: Heaps of Performance 2014
- PHOAS For Free 2013
- Japanese “ekmett” Workshop (Part 1 of 2) 2013
- Free Monads for Less (Part 3 of 3): Yielding IO 2011
- Free Monads for Less (Part 2 of 3): Yoneda 2011
- Free Monads for Less (Part 1 of 3): Codensity 2011
- The Cofree Comonad and the Expression Problem 2008
- Monads for Free 2008
heaps · GitHub
hybrid-vectors · GitHub
kan-extensions · GitHub
- Monad Transformers from Comonads 2011
- Monads from Comonads 2011
- Free Monads for Less (Part 3 of 3): Yielding IO 2011
- Free Monads for Less (Part 2 of 3): Yoneda 2011
- Free Monads for Less (Part 1 of 3): Codensity 2011
- Kan Extensions III: As Ends and Coends 2008
- Kan Extensions II: Adjunctions, Composition, Lifting 2008
- Kan Extensions 2008
lca · GitHub
lens · GitHub
- A Taste of Linear Optics 2021
- Live Coding — Session 25: Guanxi Review 2019
- Live Coding — Session 24: Dancing with Decision Diagrams 2018
- Live Coding — Session 23: Dancing Links, Part 2 2018
- Live Coding — Session 21: Relational Programming, Part 6 2018
- Live Coding — Session 20: Relational Programming, Part 5 2018
- Live Coding — Session 19: Relational Programming, Part 4 (Soul of a New Machine) 2018
- Live Coding — Session 17: Relational Programming, Part 3 2018
- Live Coding — Session 16: Relational Programming, Part 2 2018
- Live Coding — Session 15: Back from ICFP 2018
- Monad Transformer Lenses 2016
- Revisiting Matrix Multiplication — Part V: Heaps of Performance 2014
- PHOAS For Free 2013
- Cellular Automata — Part III: A World in a Bottle 2013
- Cellular Automata — Part II: PNGs and Moore 2013
- Episode 1 — On Lenses 2013
- Revisiting Matrix Multiplication — Part VI: A Most Significant Comparison 2013
- Revisiting Matrix Multiplication — Part IV: IntMap!? 2013
- Revisiting Matrix Multiplication — Part III: Extending Vector 2013
- Revisiting Matrix Multiplication — Part II: The Zen of Z-Ordering 2013
- Revisiting Matrix Multiplication — Part I: Bit Shuffling with Lenses and Isomorphisms 2013
- Cellular Automata — Part I: From Theory to Pretty Pictures 2013
- Japanese “ekmett” Workshop (Part 1 of 2) 2013
- Lenses, Folds and Traversals 2012
- Mirrored Lenses 2012
- Lenses: A Functional Imperative 2011
machines · GitHub
monad-param
monoids · GitHub
parsers · GitHub
prelude-extras · GitHub
- Bound 2015
profunctors · GitHub
rad · GitHub
recursion-schemes
- Catamorphisms 2014
- Cellular Automata — Part II: PNGs and Moore 2013
- Catamorphism Knol 2012
- Recursion Schemes: A Field Guide (Redux) 2009
- Elgot (Co)Algebras 2008
- Dynamorphisms as Chronomorphisms 2008
- Time for Chronomorphisms 2008
- Unnatural Transformations 2008
- Generalized Hylomorphisms 2008
- Rotten Bananas 2008
- Elgot Algebras 2008
reducers · GitHub
reflection · GitHub
representable-functors · GitHub
representable-tries · GitHub
speculation · GitHub
tables · GitHub
trifecta · GitHub
gl · GitHub
- Quine: Shader Toys 2014
Projects from the archive
abelian GitHub project
auth GitHub project
guanxi GitHub project
- Live Coding — Session 25: Guanxi Review 2019
- Live Coding — Session 24: Dancing with Decision Diagrams 2018
- Live Coding — Session 23: Dancing Links, Part 2 2018
- Live Coding — Session 21: Relational Programming, Part 6 2018
- Live Coding — Session 20: Relational Programming, Part 5 2018
- Live Coding — Session 19: Relational Programming, Part 4 (Soul of a New Machine) 2018
- Live Coding — Session 17: Relational Programming, Part 3 2018
- Live Coding — Session 16: Relational Programming, Part 2 2018
- Live Coding — Session 15: Back from ICFP 2018
nominal GitHub project
linear-logic GitHub project
hkd GitHub project
succinct GitHub project
propagators GitHub project
succinct-binary GitHub project
- Live Coding — Session 14.3: Succinct Serialization, Part 6 2018
- Live Coding — Session 14.2: Succinct Serialization, Part 6 2018
- Live Coding — Session 14.1: Succinct Serialization, Part 6 2018
- Live Coding — Session 13: Succinct Serialization, Part 5 2018
- Live Coding — Session 12: Succinct Serialization, Part 4 2018
- Live Coding — Session 11: Succinct Serialization, Part 3 2018
- Live Coding — Session 10: Succinct Serialization, Part 2 2018
- Live Coding — Session 9: Succinct Serialization, Part 1 2018
quine GitHub project
- Quine: Shader Toys 2014
vr GitHub project
- VR: Test Framework 2016