The polyparse package

[Tags:lgpl, library]

A variety of alternative parser combinator libraries, including the original HuttonMeijer set. The Poly sets have features like good error reporting, arbitrary token type, running state, lazy parsing, and so on. Finally, Text.Parse is a proposed replacement for the standard Read class, for better deserialisation of Haskell values from Strings.

[Skip to Readme]


Versions 1.0, 1.1, 1.2, 1.3, 1.4, 1.4.1, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12
Dependencies base (<4.4), haskell98 [details]
License LGPL
Author Malcolm Wallace <>
Maintainer author
Category Text, Parsing
Home page
Uploaded Wed Mar 4 15:12:06 UTC 2009 by MalcolmWallace
Updated Wed Dec 24 18:03:05 UTC 2014 by HerbertValerioRiedel to revision 1
Distributions Arch:1.12, Debian:1.11, Fedora:1.12, FreeBSD:1.11, LTSHaskell:1.12, NixOS:1.12, Stackage:1.12, Tumbleweed:1.12
Downloads 123880 total (4889 in the last 30 days)
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees

Readme for polyparse

Readme for polyparse-1.2

    polyparse - a collection of alternative parser combinator libraries

Installation instructions:
We currently support nhc98, ghc, and Hugs.  The automatic configuration
detects which compilers/interpreters you have, and prepares a build
tree for each.  Installation may require write-permission on the system
directories of the compiler/interpreter.  The libraries and interfaces
can then be used as "-package polyparse" (for ghc/nhc98 - no extra options
required for Hugs).

    sh configure
    make install

Options to configure are:
    --buildwith=...  e.g. ghc-6.6,        to build for a specific compiler
    --prefix=...     e.g. /usr/local,     to change installation location

Complaints to:  :-)

    For those building on Windows /without/ Cygwin, you can avoid the need
    for configure/make steps by simply running the minimal build script in
    You will need to edit it for the location of your compiler etc.

What this package contains:

  docs/			Some rudimentary HTML documentation about the libraries.
  docs/haddock/		Haddock-generated API documentation.
  examples/		Some small examples of how the libraries are used.

	Parse		A replacement for the Prelude Read class.
	HuttonMeijer		Early parser combinators from 1996.
	HuttonMeijerWallace	Extended for arbitrary token type + running
				state + error msgs.
	Poly		Space-efficient combinators that allow arbitrary
			token type.
	PolyState	arbitrary token type + running state.
	PolyLazy	arbitrary token type + lazy return of results.
	PolyStateLazy	arbitrary token type + running state + lazy results.
	Base		A class-based interface to more specific parser types.
	Plain		The instance for simple polymorphic parsers.
	Lazy		The instance for lazy polymorphic parsers.
	State		The instance for strict polymorphic parsers with state.
	StateLazy	The instance for lazy polymorphic parsers with state.
	Stream		An experimental instance for stream-based parsers.
			An experimental attempt to plug more space leaks.
	Plain		The instance for simple non-leaking parsers.
	Lazy		The instance for lazy non-leaking parsers.
	State		The instance for strict non-leaking parsers with state.
	StateLazy	The instance for lazy non-leaking parsers with state.