<commit_before>{- | The public face of Template Haskell

For other documentation, refer to:
<http://www.haskell.org/haskellwiki/Template_Haskell>

-}
module Language.Haskell.TH(
	-- * The monad and its operations
	Q, runQ,
	report,		  -- :: Bool -> String -> Q ()
	recover, 	  -- :: Q a -> Q a -> Q a
	reify, 		  -- :: Name -> Q Info
	location,	  -- :: Q Location
	runIO, 		  -- :: IO a -> Q a
	lookupTypeName, lookupValueName,
        isInstance, reifyInstances,

	-- * Names
	Name, NameSpace,	-- Abstract
	mkName,  	-- :: String -> Name
	newName, 	-- :: String -> Q Name
	nameBase,	-- :: Name -> String
	nameModule,	-- :: Name -> Maybe String
	tupleTypeName, tupleDataName,	-- Int -> Name

    -- * The algebraic data types
    -- | The lowercase versions (/syntax operators/) of these constructors are
    -- preferred to these constructors, since they compose better with
    -- quotations (@[| |]@) and splices (@$( ... )@)
	Dec(..), Exp(..), Con(..), Type(..), TyVarBndr(..), TyLit(..), Kind, Cxt,
	Pred(..), Match(..), Clause(..), Body(..), Guard(..), Stmt(..),
	Range(..), Lit(..), Pat(..), FieldExp, FieldPat,
	Strict(..), Foreign(..), Callconv(..), Safety(..), Pragma(..),
	Inline(..), InlineSpec(..), FunDep(..), FamFlavour(..), Info(..), Loc(..),
	Fixity(..), FixityDirection(..), defaultFixity, maxPrecedence,

    -- * Library functions
    -- ** Abbreviations
        InfoQ, ExpQ, DecQ, DecsQ, ConQ, TypeQ, TyLitQ, CxtQ, PredQ, MatchQ, ClauseQ,<commit_msg>Reorganise the Language.Haskell.TH export list, so that it Haddocks better<commit_after>{- | The public face of Template Haskell

For other documentation, refer to:
<http://www.haskell.org/haskellwiki/Template_Haskell>

-}
module Language.Haskell.TH(
	-- * The monad and its operations
	Q,
	runQ,
        -- ** Administration: errors, locations and IO
	reportError,		  -- :: String -> Q ()
	reportWarning,		  -- :: String -> Q ()
	report,			  -- :: Bool -> String -> Q ()
	recover, 	  -- :: Q a -> Q a -> Q a
	location,	  -- :: Q Loc
	Loc(..),
	runIO, 		  -- :: IO a -> Q a
	-- ** Querying the compiler
	-- *** Reify
	reify, 		  -- :: Name -> Q Info
	Info(..),
	InstanceDec,
	ParentName,
	Arity,
	Unlifted,
	-- *** Name lookup
	lookupTypeName,	 -- :: String -> Q (Maybe Name)
	lookupValueName, -- :: String -> Q (Maybe Name)
	-- *** Instance lookup
	reifyInstances,
	isInstance,

	-- * Names
	Name, NameSpace,	-- Abstract
	-- ** Constructing names
	mkName,  	-- :: String -> Name
	newName, 	-- :: String -> Q Name
	-- ** Deconstructing names
	nameBase,	-- :: Name -> String
	nameModule,	-- :: Name -> Maybe String
	-- ** Built-in names
	tupleTypeName, tupleDataName,	-- Int -> Name
	unboxedTupleTypeName, unboxedTupleDataName, -- :: Int -> Name

    -- * The algebraic data types
    -- | The lowercase versions (/syntax operators/) of these constructors are
    -- preferred to these constructors, since they compose better with
    -- quotations (@[| |]@) and splices (@$( ... )@)

    -- ** Declarations
	Dec(..), Con(..), Clause(..), 
	Strict(..), Foreign(..), Callconv(..), Safety(..), Pragma(..),
	Inline(..), InlineSpec(..), FunDep(..), FamFlavour(..),
	Fixity(..), FixityDirection(..), defaultFixity, maxPrecedence,
    -- ** Expressions
        Exp(..), Match(..), Body(..), Guard(..), Stmt(..), Range(..), Lit(..),
    -- ** Patterns
        Pat(..), FieldExp, FieldPat,
    -- ** Types
        Type(..), TyVarBndr(..), TyLit(..), Kind, Cxt, Pred(..),

    -- * Library functions
    -- ** Abbreviations
        InfoQ, ExpQ, DecQ, DecsQ, ConQ, TypeQ, TyLitQ, CxtQ, PredQ, MatchQ, ClauseQ,
{'fraction_non_alphanumeric': 0.2014569907537125, 'fraction_numerical': 0.0, 'mean_word_length': 2.5416666666666665, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 32, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5037929', 'n_tokens_mistral': 1290, 'n_tokens_neox': 1233, 'n_words': 341}