The notcpp package

[Tags: bsd3, library]

notcpp is a library that attempts to provide an alternative to using CPP as a mechanism for conditional compilation. It provides facilities for determining if specific names or class instances exist and responding accordingly.

When a value or class instance appears between minor releases of a third-party package, a common way of dealing with the problem is to use CPP to conditionally use one block of code or another. The trouble with CPP is it's hard to statically analyse: tools based on haskell-src-exts will outright refuse to parse it, for example. It turns out Template Haskell will do the same job in some cases.

notcpp is largely a proof-of-concept, experimental package: you are welcome to use it if it suits you, but it may be liable to change suddenly.


[Skip to ReadMe]

Properties

Versions0.0.1, 0.1, 0.1.0.1, 0.2, 0.2.0.1, 0.2.0.2, 0.2.0.3
Change logChangeLog
Dependenciesbase (<5), template-haskell (>=2.5 && <2.9) [details]
LicenseBSD3
Copyright2012 Ben Millwood
AuthorBen Millwood <haskell@benmachine.co.uk>
MaintainerBen Millwood <haskell@benmachine.co.uk>
CategoryTemplate Haskell
Bug trackerhttps://github.com/benmachine/notcpp/issues
Source repositoryhead: git clone git://github.com/benmachine/notcpp
UploadedFri Sep 7 23:42:27 UTC 2012 by BenMillwood
DistributionsNixOS:0.2.0.3
Downloads880 total (46 in last 30 days)
Votes
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for notcpp-0.2.0.2

This package is as much about getting people to think about ways to
avoid using the C preprocessor, which isn't really suited to Haskell and
never has been, as it is about genuinely providing a set of functions
that people will use in production code.

That is to say, it isn't very good.

Areas of future development:
- catering for missing constructors we can't match against and the like
- quasiquoters to make using the thing less painful