notcpp: Avoiding the C preprocessor via cunning use of Template Haskell
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]
|Versions||0.0.1, 0.1, 0.1.0.1, 0.2, 0.2.0.1, 0.2.0.2, 0.2.0.3|
|Dependencies||base (<5), template-haskell (>=2.5 && <2.11) [details]|
|Copyright||2012 Ben Millwood|
|Author||Ben Millwood <email@example.com>|
|Maintainer||Ben Millwood <firstname.lastname@example.org>|
|Source repo||head: git clone git://github.com/benmachine/notcpp|
|Uploaded||by BenMillwood at Sat Apr 11 01:17:31 UTC 2015|
|Downloads||2500 total (23 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
|Status||Docs available [build log]
Last success reported on 2015-04-11 [all 1 reports]
Hackage Matrix CI
For package maintainers and hackage trustees