pads-haskell: PADS data description language for Haskell.

[ language, library, mit ] [ Propose Tags ]

Please see the README on Github at

[Skip to Readme]
Versions [faq],
Change log
Dependencies base (>=4.7 && <5), byteorder (>=1.0.4 && <1.1), bytestring (==0.10.*), containers (>=0.5.10 && <0.7), ghc-prim (>=0.5.3 && <0.6), haskell-src-meta (==0.8.*), HUnit (>=1.6 && <1.8), mainland-pretty (>=0.6.1 && <0.8), mtl (>=2.2.2 && <3), mwc-random (>= && <0.15), parsec (>=3.1.13 && <3.2), random (==1.1.*), regex-posix (>=0.95.2 && <0.96), syb (==0.7.*), template-haskell (>= && <=2.15), th-lift (>=0.7.11 && <0.8), time (>=1.7.0 && <1.8.1), transformers (==0.5.*) [details]
License MIT
Copyright 2011 Kathleen Fisher & John Launchbury
Author Kathleen Fisher and John Launchbury
Category Language
Home page
Bug tracker
Source repo head: git clone
Uploaded by KarlCronburg at 2019-06-10T04:52:25Z
Distributions NixOS:
Downloads 819 total (2 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-06-10 [all 1 reports]


[Index] [Quick Jump]


Maintainer's Corner

For package maintainers and hackage trustees

Readme for pads-haskell-

[back to package description]


Massive amounts of useful data are stored and processed in ad hoc formats for which common tools like parsers, printers, query engines and format converters are not readily available. Pads/Haskell is a domain-specific language that facilitates the generation of data processing tools for ad hoc formats. Pads/Haskell includes features such as dependent, polymorphic and recursive datatypes, which allow programmers to describe the syntax and semantics of ad hoc data in a concise, easy-to-read notation.

The pads haskell repository contains the code for the Haskell binding for PADS. For more information about the project, see the pads website (


pads-haskell currently requires GHC 8.2.2 and stack resolver lts-11.3.


To generate an appropriate Stack configuration file and install an appropriate GHC tool chain:

$ stack solver    # Updates stack.yaml if necessary
$ stack setup     # Installs ghc in a sandbox for you


To build pads-haskell:

$ stack build


To run the automated testing infrastructure:

$ stack test :examples --ghc-options="-ddump-splices"
# Followed by this if you want to see the dumped splice files:
$ find . -name *.dump-splices

To run individual tests do:

$ stack repl
λ> :l Examples.First
λ> test
Cases: 89  Tried: 89  Errors: 0  Failures: 0
Counts {cases = 89, tried = 89, errors = 0, failures = 0}
(0.11 secs, 0 bytes)

Contributing and Development

In order to build and view the haddock documentation do the following:

stack haddock
firefox `find .stack-work -name index.html | grep "html/pads-haskell"`

Pull requests are strongly encouraged, though we're more likely to merge them in a timely fashion if they either add small features to existing modules or are new PADS descriptions to add to the examples directory.