Haskell for all
Saturday, January 10, 2015
total-1.0.0: Exhaustive pattern matching using traversals, prisms, and lenses
The lens library provides Prism s, which are a powerful way to decouple a type's interface from its internal representation. For exampl...
Saturday, December 6, 2014
A very general API for relational joins
Map s and tuples are useful data types for modeling relational operations. For example, suppose we have the following table, indexed by the ...
Sunday, November 23, 2014
How to build library-agnostic streaming sources
The Haskell ecosystem has numerous libraries for effectful stream programming, including, but not limited to: List conduit enumerator i...
Sunday, October 26, 2014
How to desugar Haskell code
Haskell's core language is very small, and most Haskell code desugars to either: lambdas / function application, algebraic data types...
Friday, September 12, 2014
Morte: an intermediate language for super-optimizing functional programs
The Haskell language provides the following guarantee (with caveats): if two programs are equal according to equational reasoning then they...
Sunday, August 10, 2014
managed-1.0.0: A monad for managed resources
I'm splitting off the Managed type from the mvc library into its own stand-alone library . I've wanted to use this type outside of...
Sunday, July 20, 2014
Equational reasoning at scale
Haskell programmers care about the correctness of their software and they specify correctness conditions in the form of equations that their...
View web version