The notcpp package

[Tags:bsd3, library, test]

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.


Versions 0.0.1, 0.1,, 0.2,,,
Dependencies base (<5), template-haskell (>=2.5 && <2.8) [details]
License BSD3
Copyright 2012 Ben Millwood
Author Ben Millwood <>
Maintainer Ben Millwood <>
Category Template Haskell
Bug tracker
Source repository head: git clone git://
Uploaded Wed May 30 18:08:46 UTC 2012 by BenMillwood
Distributions NixOS:
Downloads 1390 total (19 in the last 30 days)
0 []
Status Docs not available [build log]
All reported builds failed as of 2016-12-24 [all 7 reports]
Hackage Matrix CI


  • NotCPP
    • NotCPP.LookupValueName
    • NotCPP.OrphanEvasion
    • NotCPP.ScopeLookup


Maintainer's Corner

For package maintainers and hackage trustees