This is probably mostly out of date. There’s a couple of hundred packages on Hackage that I wrote. But I don’t maintain these anymore and they’re part of the Haskell community/libraries effort.
Most of the software I’ve written or contributed significant code towards. Almost all of these are installable with “cabal install“. The bigger applications, like xmonad or yi, are probably in your distro of choice.
I was a founding member of the infrastructure team for the Haskell Platform, and 2011 chair of Haskell.org. I stepped down from those duties in around 2012.
Cryptography
- nano-md5: Efficient, ByteString bindings to OpenSSL
Control
- monad-mersenne-random, An efficient random number monad.
Data
- adaptive-containers: polymorphic, regular data structures that optimize their representation
- binary: Binary serialisation for Haskell values using lazy ByteStrings
- bytestring: Fast, packed, strict and lazy byte arrays with a list interface
- bytestring-csv: Parse CSV formatted data efficiently
- bytestring-lexing: Parse literals efficiently from bytestrings
- compiled-constants: examples of statically specified data literals
- dlist: Differences lists
- gofer-prelude: A port of the classic Gofer prelude to Haskell
- hinze-stream:Streams and Unique Fixed Points
- judy: Fast, scalable. mutable dynamic arrays, maps and hashes
- liboleg: A collection of Oleg Kiselyov’s Haskell modules
- stream-fusion: Faster Haskell lists using stream fusion
- strict-concurrency: Strict concurrency abstractions
- uvector: Fast unboxed arrays with a flexible interface
- strict: Strict data types and String IO
- vector-binary-instances: binary serialization for vectors
- vector-random: generate vectors with the mersenne twister.
Development
- diffcabal: Diff two cabal files semantically
- ghc-core: Display GHC’s core and assembly output in a pager
- ghc-gc-tune: Analyze the impact of GC flags on performance.
- ghc-events-stream: parse the binary event stream from ghc
- ghc-monitor: proof of concept web-app for monitoring a remote Haskell process
- loch: Support for precise error locations in source files
- mkcabal: Generate cabal files for a Haskell project
- nobench: benchmark suite for a Haskell compiler
- typeof: Small script for inferring types
- yi: a text editor written and extensible in Haskell
- vacuum-cairo: a cairo frontend to vacuum, allowing interactive data visualization in ghci
Distribution
- archlinux: Haskell interface to Arch Linux package infrastructure. Generates this table.
- cabal2arch: Create Arch Linux packages from Cabal packages
- cabalgraph: Generate pretty graphs of module trees from cabal files
- lscabal: List exported modules from a set of .cabal files
- darcs-graph: Generate graphs of darcs repository activity
- hackage-sparks: Generate sparkline graphs of hackage statistics
- hackage2hwn: Convert Hackage RSS feeds to wiki format
- hackage-plot: Generate cumulative graphs of hackage uploads
- archnews: Convert Arch Linux package updates in RSS to pretty markdown
Formal Methods:
- yices-painless: a typed embedded domain-specific language for SMT solving
Graphics
- printxosd: Simple tool to display some text on an on-screen display
- scaleimage: Scale an image to a new geometry
- testpattern: Display a monitor test pattern
- xosd: A binding to the X on-screen display
- x11: A binding to the X11 graphics library
- hscurses: NCurses bindings for Haskell
- nanocurses: Simple Curses binding
- repa-devil: Read and write images in many formats as 3D arrays
Math
- cmath: A binding to the standard C math library
- mersenne-random-pure64: Generate high quality pseudorandom numbers purely
- mersenne-random: Generate high quality pseudorandom numbers using a SIMD Fast Mersenne Twister
- statistics-fusion: High performance, minimal statistics package using stream fusion
Network
- download-curl: High-level file download based on URLs
- download: High-level file download based on URLs
- gravatar: Find the url of the gravatar associated with an email address
- lambdabot: Lambdabot is a development tool and advanced IRC bot
- rss2irc: Subscribe to an RSS feed and write it to an IRC channel
- urlcheck: Parallel link checker
Sound
System
- bytestring-mmap: mmap support for strict ByteStrings
- cpuperf: Modify the cpu frequency on OpenBSD systems
- h4sh: expose Haskell list functions to the shell
- hs-plugins: Dynamic linking for Haskell and C objects
- hsclock: packaging of standard cairo analogue clock
- goa: GHCi with extensions
- pony: Can I have a pony?
- xmonad: A tiling window manager
- xmonad-contrib: Third party extensions for xmonad
- riot: Riot is an Information Organisation Tool
- randomgen: A fast, SMP parallel random data generator
Text
- pcre-light: A small, efficient and portable regex library for Perl 5 regexen
- liboleg: A collection of Oleg Kiselyov’s Haskell modules
Testing
- pqc: Parallel batch driver for QuickCheck
Web
Here’s a graph of parts of the Haskell library namespace I’ve contributed to (generated by cabalgraph):
Hi Don,
I am very interested in trying out your h4sh haskell work, but have been having trouble trying to install it via the darcs repo that the h4sh page points to. It seems to be depending on fps which appears to be deprecated.
Do you have a more up-to-date copy/ is it still being maintained / have i missed something?
Thanks in advance for your help.
Nath