Subscribe via RSS

All Posts

  • MonadFix is Time Travel

    Aug 22, 2017

    MonadFix is a pretty difficult concept, and I personally found much of the existing content about it online to be somewhat unhelpful. I answered a request for an ELI5 of MonadFix on Reddit, and someone suggested I turn my answer into a blog post. So here it is, edited with more content and detail.

  • Nix Style Configs in Haskell

    Apr 1, 2017

    This is on GitHub

  • Applicative Sorting

    Mar 23, 2017

    Continuing my unending train of thoughts on static analysis of effects, in this post I’m going to talk about using Applicative to sort any collection. The Traversable typeclass is one of my favorites because it generalizes the idea of a collection so elegantly. I will show how to use traverse to sort any such collection safely using a special applicative.

  • Profunctors, Arrows, & Static Analysis

    Mar 10, 2017

    In the past, I’ve talked about using applicative functors to do static analysis (1, 2, 3). In this post, I’m going to explore a concept known as Arrow, and compare its capabilities to those of monads and applicatives. Arrows have a high granularity of features. This post will be split into sections for each of those features. Those sections are:

  • Kleisli Functors

    Oct 12, 2016

    Abstract: I define a typeclass for functors from Kleisli categories to Hask. This class turns out having more interesting properties than I expected, encompassing various Haskell patterns such as concurrency, and monad transformers.

  • Aggregating WMCQ Results

    Sep 23, 2016

    It’s that time again. WMCQ just wrapped up and we’ve got a load of data to work with. Some of you may remember the last time I did this. I’m still working (in my free time) on a web interface for doing my analyses, but for now I’ll just share the results of me manually running the programs.

  • Abstracting Async.Concurrently

    Sep 17, 2016

    Applicatives have an interesting relationship to concurrency. fraxl is my attempt to abuse this relationship with free monads to get something more abstract than haxl. By using a special Applicative instance, fraxl allows computations to be implicitly concurrent.

  • More on Applicative Effects in Free Monads

    Apr 13, 2016

    In my last post, I explored the problem of Applicative effects in free monads. After some great discussion between Edward Kmett, Dave Menendez, /u/MitchellSalad, and myself, I think I’ve come to a new understanding.

  • Applicative Effects in Free Monads

    Apr 8, 2016

    UPDATE: I’ve written a second post addressing some issues with this one.

  • I found a blog, can I keep it?

    Mar 31, 2016

    Hello, and welcome to my new blog! For a while now, I’ve been switching between a few platforms like Wordpress and Medium. But I never liked not having a simple git repo to hold the whole blog. Posts were managed by a magic server, formatting was complicated, and version control was bad or non-existent. The solution was Jekyll.

  • Automatically Generating Magic Decks Using Deck Building Strategies

    Sep 24, 2015

    Magic deck building is no easy task. You have to identify a strategy, choose cards that go well together, and make sensible cuts. With all the cards available in a given format, this can be a daunting task.