This repository is filled with articles I have written and needed online for
various reasons. Below is a short summary of the articles available publically.
The repository may contain files not mentioned below, in which case they're
probably unfinished or otherwise not worth reading at this point.
Algebraic blindness is about how algebraic data types
sometimes make Boolean Blindness even more complex.
build function explained, which is an important piece in a
popular optimization technique
Cont monad explained
- Some lazy IO pitfalls
fix function, one possible fundamental building block of
- Frequently Brought Up Topics in Freenode's #haskell
Basic Haskell functions written in easily comprehensible
notation. Nice for explaining e.g.
What I thought was cool about Haskell some time ago. I should
update this one day.
Equality table of Haskell values. (live version)
Created in a time where it seemed to be en vogue to create tables for the
operator in various languages. Spoiler, it's terribly boring, because it
- How to fix, or avoid fixing, certain warnings
My Haskell code style and the rationale behind it
Informal description of class instances gives non-technical
descriptions of various common class instances.
- An extensive tutorial on the Hindley-Damas-Milner type inference algorithm
Lens infix operators cheat sheet provides an overview of what
the individual symbols in infix operators of the lens library stand
Löb/Möb is about an interesting, simple, complicated and quirky
Reader instance derived shows how to write the usual
monad instance starting from something readable and comprehensible.
- The second
Functor law is redundant
type is about avoiding
type synonyms, and
How to write unmaintainable Haskell, inspired by
How to write unmaintainable code
Useful techniques I've found over the years and haven't seen
Write yourself a Brainfuck in an hour implements a very simple
Brainfuck interpreter in Haskell, with plenty of room to go on
Make macros mean something – readable backwards compatibility with
CPP talks about how to define readable macro synonyms
for writing backwards compatible libraries.
zipWith const is my favorite Haskell function
Applicative-Monad proposal (AMP) is the original text of the 2013
Applicative-Monad proposal, which was the starting point for Applicative
becoming a superclass of Monad in GHC 7.10.
Rules for typeclass laws wasn't proosed yet
The MonadFail proposal is a proposal similar to the AMP, with the goal of
fail from the