{-# LANGUAGE CPP #-} module NewtypeDeriving.TH where import BasePrelude import Language.Haskell.TH purifyQ :: Q a -> a purifyQ = unsafePerformIO . runQ tryToReify :: Name -> Q (Maybe Info) tryToReify n = recover (return Nothing) (fmap Just $ reify n) {-# INLINE classP #-} classP :: Name -> [Type] -> Pred #if MIN_VERSION_template_haskell(2,10,0) classP n tl = foldl AppT (ConT n) tl #else classP = ClassP #endif