move QuickCheck.All to separate package (because of TemplateHaskell)

Henning Thielemann lemming at henning-thielemann.de
Fri Apr 27 12:31:14 BST 2012


Hi,

I had trouble compiling QuickCheck on a snapshot of GHC-7.5, because of 
its Template Haskell dependency. I found that there is a Cabal switch in 
order to disable Template Haskell. Unfortunately Hackage does not 
list Cabal flags. However when this flag is disabled the module 
QuickCheck.All is gone. How can a package that imports QuickCheck can 
assert that QuickCheck.All is present if it is needed?

I think the only clean solution is to move QuickCheck.All to a separate 
package, say QuickCheckTH. This has many advantages: It makes clear for 
everyone that there is some QuickCheck stuff that depends on Template 
Haskell. It allows packages to explicitly depend on QuickCheck.All. It 
frees all packages from a Template Haskell dependency that import plain 
QuickCheck.


Best,
Henning



More information about the QuickCheck mailing list