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
Path Support for well-typed paths
Path IO Operations on files and directories with well-typed paths
Stache Mustache templates for Haskell
Text Metrics Calculate various string metrics efficiently in Haskell
FLAC Complete high-level Haskell binding to libFLAC
Identicon Flexible generation of identicons in Haskell
Parser combinators Lightweight package providing commonly useful parser combinators
Hspec Megaparsec Utility functions for testing Megaparsec parsers with Hspec
HTagLib Haskell bindings for TagLib, an audio meta-data library
Plan B Failure-tolerant file and directory editing for Haskell
Slug Type-safe slugs for Yesod ecosystem
Pagination Framework-agnostic pagination boilerplate
Juicy Pixels Extra Efficiently scale, crop, flip images with JuicyPixels
FLAC picture Support for writing picture to FLAC metadata blocks with JuicyPixels
Forma Parse and validate forms in JSON format
Tagged Identity Trivial monad transformer that allows identical monad stacks have different types
LAME Fairly complete high-level Haskell binding to LAME encoder
WAVE Work with WAVE and RF64 files in Haskell
Data Check Library for checking and normalization of data (e.g. from web forms)
CUE Sheet Support for construction, rendering, and parsing of CUE sheets

Emacs Lisp (general)

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

Emacs Lisp (for Haskell)

Ebal Emacs interface to Cabal and Stack
Hasky Extensions Toggle Haskell language extensions from Emacs

Common Lisp

Unix opts Unix-style command line options parser
MK string metrics Calculate various string metrics efficiently in Common Lisp
CL Readline Common Lisp bindings to GNU Readline library
CL ANSI term Colorized output on ANSI terminals and more
Trivial update Easy modification of places with any given function