Projects


I maintain over fifty projects in the Haskell ecosystem available on hackage, stackage and our public Gitlab under permissive licenses.

Featured



All Projects


aeson-with
withXField combinators for adding fields to an existing JSON value
anki-connect
Http client for anki-connect.
chassis
Minimal prelude with PolyKinds
composite-cassava
Csv parsings and printing support for composite
compdoc
Alternative composite record format for pandoc
compdoc-dhall-decoder
Dhall decoder for compdoc
composite-aeson-cofree-list
Write a Cofree [] as a JSON value with "head" and "tail" elements.
composite-aeson-throw
MonadThrow behaviour for composite-aeson-parsing
composite-dhall
WriteOnly indicators for composite-aeson
composite-lens-extra
Extra lens functions for composite records
composite-tuple
Tuple functions for composite records
composite-xstep
HKD ReaderT pattern for composite
conic-graphs
Vinyl-style extensible graphs
fcf-composite
First-class-families support for composite records
fcf-graphs
Type-level algebraic-graphs
flashblast
Dhall based flashcard generation app for anki
hashmap-throw
HashMap lokoup lifted to MonadThrow
ixset-typed-binary-instance
Binary instance for ixset-typed
ixset-typed-cassava
Decode CSV to and from IxSet-typed
ixset-typed-conversions
Conversions from ixset-typed to other containers
ixset-typed-hashable-instance
Hashable instance for ixset-typed
pandoc-dhall-decoder
A decoder for deserializing pandoc directly from a dhall text field
pandoc-throw
MonadThrow versions of some pandoc functions
path-binary-instance
Binary instance for path
path-dhall-instance
Path dhall instance
path-formatting
Formatting for the path library
path-like
Class for types that can be compiled down to a path
path-utils
Miscellaneous utils for the path library
polysemy-extra
Extra transformation functions for polysemy
polysemy-fs
Low level filesystem effects for polysemy
polysemy-fskvstore
Run a KVStore as a filesystem in polysemy
polysemy-kvstore
KVStore effect for polysemy
polysemy-kvstore-jsonfile
Run a KVStore as a JSON file in polysemy
polysemy-methodology
Domain modelling semantics for polysemy
polysemy-methodology-co-log
Logging for polysemy-methodology
polysemy-methodology-composite
Functions for using polysemy-methodology in conjunction with composite
polysemy-path
Polysemy versions of Path functions
polysemy-several
runSeveral interpreter for polysemy
polysemy-socket
Socket effect for polysemy
polysemy-uncontrolled
Evil side effects in polysemy
polysemy-video
Video processing effect for polysemy
polysemy-vinyl
Extra functions for using vinyl records in polysemy
shake-plus
Batteries included Shake using well-typed paths and typeclasses
shake-plus-extended
Experimental extensions to shake-plus
shakebook
Attempt at a shake-based static site prelude
simple-media-timestamp
A simple timestamp type
simple-media-timestamp-attoparsec
Attoparsec parser for simple-media-timestamp
simple-media-timestamp-formatting
Formatting for simple-media-timestamp
srt
SRT subtitle data format
srt-attoparsec
Attoparsec parser for SRT format.
srt-dhall
Dhall instances for srt
srt-formatting
Formatting for an SRT subtitle track
techlab
Domain modelling toolkit for problem solvers
unliftio-path
UnliftIO using well-typed paths
variable-media-field
Simple type for representing one of several media options
variable-media-field-dhall
Dhall instances for variable-media-field
variable-media-field-optics
Optics for variable-media-field
vinyl-loeb
Version of loeb's theorem for extensible records
within
A type representing a value within another path
zipper-extra
Zipper utils that weren't in Control.Comonad.Store.Zipper