articles icon indicating copy to clipboard operation
articles copied to clipboard

Miscellaneous articles. The readme is the table of contents.

Quchen's articles

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.

Haskell related

General, tutorials

  • Algebraic blindness is about how algebraic data types sometimes make Boolean Blindness even more complex.
  • The build function explained, which is an important piece in a popular optimization technique
  • The Cont monad explained
  • Some lazy IO pitfalls
  • The fix function, one possible fundamental building block of recursion
  • Frequently Brought Up Topics in Freenode's #haskell channel
  • Basic Haskell functions written in easily comprehensible notation. Nice for explaining e.g. sequence.
  • 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 should be.
  • 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 for.
  • Löb/Möb is about an interesting, simple, complicated and quirky recursive function.
  • Reader instance derived shows how to write the usual Reader monad instance starting from something readable and comprehensible.
  • The second Functor law is redundant
  • Tag, don't type is about avoiding type synonyms, and using Data.Tagged instead.
  • How to write unmaintainable Haskell, inspired by How to write unmaintainable code
  • Useful techniques I've found over the years and haven't seen described elsewhere
  • Write yourself a Brainfuck in an hour implements a very simple Brainfuck interpreter in Haskell, with plenty of room to go on afterwards.
  • 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

Proposals

  • 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 removing fail from the Monad typeclass.

    • Original text
    • Update after one week of discussion.