-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A grab bag of functions for use with Template Haskell
--   
--   A grab bag of functions for use with Template Haskell.
--   
--   This is basically the place I put all my ugly CPP hacks to support the
--   ever-changing interface of the template haskell system by providing
--   high-level operations and making sure they work on as many versions of
--   Template Haskell as I can.
@package th-extras
@version 0.0.0.4

module Language.Haskell.TH.Extras
intIs64 :: Bool
replace :: (a -> Maybe a) -> a -> a
composeExprs :: [ExpQ] -> ExpQ
nameOfCon :: Con -> Name

-- | WARNING: discards binders in GADTs and existentially-quantified
--   constructors
argTypesOfCon :: Con -> [Type]
nameOfBinder :: TyVarBndr -> Name
varsBoundInCon :: Con -> [TyVarBndr]
namesBoundInPat :: Pat -> [Name]
namesBoundInDec :: Dec -> [Name]
genericalizeName :: Name -> Name
genericalizeDecs :: [Dec] -> [Dec]
headOfType :: Type -> Name
occursInType :: Name -> Type -> Bool
