Archives
2025
- A New Perspective on Lenses Jan 18
- Read the Code, Not the Profile Jan 12
2024
- Jujutsu Strategies May 18
2023
- FRP in Yampa: Part 4: Routing Dec 26
- FRP in Yampa: Part 3: Switching Dec 24
- FRP in Yampa: Part 2: Arrowized FRP Dec 22
- FRP in Yampa: Part 1 Dec 21
- Certainty by Construction: Done! Oct 30
- Certainty by Construction Progress Report 10 Oct 12
- Certainty by Construction Progress Report 9 Sep 2
- Certainty by Construction Progress Report 8 Aug 23
- Certainty by Construction Progress Report 7 Aug 12
- Certainty by Construction Progress Report 6 Jul 14
- Certainty by Construction Progress Report 5 Jun 20
- Certainty by Construction Progress Report 4 Jun 16
- Certainty by Construction Progress Report 3 May 25
- Certainty by Construction Progress Report 2 May 18
- Certainty by Construction Progress Report 1 May 12
- The Co-Blub Paradox Mar 24
- Abusing Constraints for Automatic Documentation Jan 3
2022
- Why Is the Web So Monotonous? Google. Aug 4
- Review: Proof-Carrying Code Mar 22
- Review: Syntax-Guided Synthesis Mar 19
- Review: Generic Parallel Functional Programming Mar 12
- Review: Lightweight Semiformal Time Complexity Analysis for Purely Functional Data Structures Mar 6
- Review: A Very Elementary Introduction to Sheaves Feb 27
- Automatic Ring Solving Feb 16
- Review: Codata in Action Feb 10
- Followup to Sorting with Bialgebras Feb 8
- Review: Sorting with Bialgebras and Distributive Laws Feb 5
- Underlining the Bugs Jan 31
- Review: Copatterns Jan 29
- Review: Clowns to the Left of Me, Jokers to the Right Jan 23
- Automating Wordle Jan 20
- Review: Shall We Vote on Values, But Bet on Beliefs? Jan 14
- Review: Adders and Arrows Jan 7
2021
- Automatically Migrating Eq of No (/=) Nov 21
- Dragging Haskell Kicking and Screaming into the Century of the Fruitbat Nov 12
- Proving Commutativity of Polysemy Interpreters Oct 21
- Proving Equivalence of Polysemy Interpreters Oct 16
- Testing Polysemy With polysemy-check Oct 9
- Porting to Polysemy Oct 2
- Exploring Case Law Feb 8
- I Built a Terrible Roomba Jan 23
2020
- Haskell in the Real World Nov 25
- Separate Your Views; Reify Your Reasoning Nov 9
- Towards Tactic Metaprogramming in Haskell Oct 12
- Algebra-Driven Design Sep 10
- Polysemy: Mea Culpa Jun 14
- A Working Linux DAW Feb 13
2019
- Low-Tech AST Extensibility with Extension Patterns Nov 27
- Haskell2020 Is Dead, but All Hope Is Not Lost Nov 1
- New Book: Design and Interpretation of Haskell Programs Oct 13
- Nimic: A language about nothing Jul 15
- How I Intend to Help Steer GHC Jul 11
- Polysemy Internals: The Effect-Interpreter Effect Jun 26
- Implement With Types, Not Your Brain! Jun 25
- Polysemy Internals: Freer Interpretations of Higher-Order Effects May 31
- Faking Fundeps with Typechecker Plugins May 25
- Writing Custom Optimization Passes May 22
- GHC's Specializer: Much More Than You Wanted to Know May 18
- Announcing Polysemy Apr 10
- Freer, yet Too Costly Higher-order Effects Mar 12
- Freer Monads: Too Fast, Too Free Feb 18
- Freer Monads, More Better Programs Feb 13
- How to Write Technical Posts (so people will read them) Feb 7
2018
- Thinking with Types Nov 14
- Protobuffers Are Wrong Oct 10
- Gauging Interest in a Type-Level Programming Book Jul 8
- Static Analysis of Free Monads Jul 7
- Coercions and Roles for Dummies Jun 26
- Performance and Feature Case Studies in Ecstasy May 18
- Follow the Denotation May 3
- Algorithmically Scrapping Your Typeclasses Apr 16
- HKD: Less Terrible than You Might Expect Apr 4
- Free Lenses for Higher-Kinded Data Mar 31
- Higher-Kinded Data Mar 29
- Devlog: Navigation Feb 8
- Devlog: Action Menus, Timers and Hit Detection Feb 1
- Why Take Ecstasy Jan 28
- Devlog: Starting a Game Engine Jan 27
2017
- Gentle Theorems: Difference of Squares Nov 24
- Type-Directed Code Generation Nov 18
- Review: Bananas, Lenses, Envelopes and Barbed Wire Oct 6
- Modeling Music Sep 6
- Review: Information Effects Aug 20
- Review: Theorems for Free Jul 29
- Don't Eff It Up Apr 9
- Comonadic Collision Resolution Jan 1
2016
- Book Announcement Nov 9
- Better Data Types a la Carte Sep 13
- An Existential Crisis Jul 15
- Constructing a Comonad Jun 26
- Zap as the Machinery of Program Reduction Jun 19
- Wake Up and Smell the Cofree Comonads Jun 5
- Towards Procedurally Generated Stories via Free Monads Jun 2
- Elm Is Wrong Apr 12