Open source software

Here I list all currently active OSS projects I authored and/or maintain. They are roughly in the order of usefulness to other people.

Use GitHub issues to contact me regarding these projects. I usually provide support if you run into any issues using them.


Megaparsec Industrial-strength monadic parser combinator library
Req Easy-to-use, type-safe, expandable, high-level HTTP library
Zip Efficient library for manipulating zip archives
Modern URI Modern library for working with URIs
Text metrics Calculate various string metrics efficiently in Haskell
Stache Mustache templates for Haskell
Path Support for well-typed paths
Path IO Operations on files and directories with well-typed paths
FLAC Complete high-level Haskell binding to libFLAC
Parser combinators Lightweight package providing commonly useful parser combinators
Hspec Megaparsec Utility functions for testing Megaparsec parsers with Hspec
GHC syntax highlighter Correct syntax highlighter for Haskell using GHC itself
Forma Parse and validate forms in JSON format
Identicon Flexible generation of identicons in Haskell
HTagLib Haskell bindings for TagLib, an audio meta-data library
WAVE Work with WAVE and RF64 files in Haskell
LAME Fairly complete high-level Haskell binding to LAME encoder
Juicy Pixels extra Efficiently scale, crop, flip images with JuicyPixels
Pagination Framework-agnostic pagination boilerplate
Req conduit Conduit utilities that work with Req
FLAC picture Support for writing picture to FLAC metadata blocks with JuicyPixels
CUE Sheet Support for construction, rendering, and parsing of CUE sheets
HTML entity map Map from HTML5 entity names to the corresponding Unicode text
Tagged identity Trivial monad transformer that allows identical monad stacks have different types


MMark Strict markdown processor for writers
MMark CLI Command line interface to the MMark markdown processor
MMark extensions Commonly useful extensions for the MMark markdown processor
Flycheck support for MMark Flycheck checker for the MMark markdown processor

Emacs Lisp

Vimish fold Vim-like text folding for Emacs
Modalka Easily introduce native modal editing of your own design
Typit Typing game for Emacs similar to the tests on 10 fast fingers
Ace popup menu Replace GUI popup menu in Emacs with something more efficient
Fix word Transform words in Emacs (upcase, downcase, capitalize, etc.)
Cyphejor Shorten major mode names using user-defined rules
Kill or bury alive Precise control over buffer killing in Emacs
Char menu Create your own menu for fast insertion of arbitrary symbols
Zzz to char Fancy replacement for zap-to-char in Emacs
MMT Missing macro tools for Emacs Lisp
Avy menu Library providing avy-powered popup menu for Emacs
Fix input Make input methods play nicely with alternative keyboard layout

Hasky Mode

Hasky Stack Interface to the Stack Haskell development tool
Hasky extensions Toggle Haskell language extensions from Emacs


Rules Haskell Rules for building Haskell code using Bazel