Choc13 - Blog

Grokking Lenses

In most functional programming languages data structures are immutable by default, which is great bec...

Interpreting Free Monads

In the last post in this series we grokked Free Monads and saw that they gave us a way to neatly buil...

Grokking Free Monads

In this post I’m going to try and demystify free monads and show you that they’re not some strange ab...

Grokking Monad Transformers

Earlier in this series, in Grokking Monads, we discovered that monads allowed us to abstract away the...

Grokking the Reader Monad

From its name the reader monad doesn’t give too many clues about where it would be useful. In this po...

Grokking Traversable

Once you've grokked traversable's you'll wonder how you ever lived without them. Trying to gain intui...

Grokking Applicatives

Applicatives are perhaps the less well-known sibling of the monad, but are equally important and...

Grokking Functors

In this post we're going to grok functors by "discovering" them through a worked example. S...

Grokking Monads, Imperatively

Previously, in Grokking Monads, we discovered monads by going through a worked example. By the end we...

Grokking Monads

In this post we're going to grok monads by independently "discovering" them through a worked example....