emgm-0.2: src/Generics/EMGM/Data/TH.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverlappingInstances #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS -fno-warn-orphans #-}
{- OPTIONS -ddump-splices -}
-----------------------------------------------------------------------------
-- |
-- Module : Generics.EMGM.Data.TH
-- Copyright : (c) 2008 Universiteit Utrecht
-- License : BSD3
--
-- Maintainer : generics@haskell.org
-- Stability : experimental
-- Portability : non-portable
--
-- Summary: Generic representation and instances for Template Haskell types.
--
-- The main purpose of this module is to export the instances for the
-- representation dispatcher 'Rep'. For the rare cases in which it is needed,
-- this module also exports the embedding-projection pair and constructor
-- description.
--
-- /NOTE/: The exported values are not explicitly documented, because there is a
-- large number and they are all generated with Template Haskell expressions.
-- For a detailed look, use the @:browse@ command in GHCi.
-----------------------------------------------------------------------------
module Generics.EMGM.Data.TH where
import Generics.EMGM.Common hiding (Fixity, ConDescr(..))
import Language.Haskell.TH
#ifndef __HADDOCK__
$(derive ''Name)
$(derive ''Dec)
$(derive ''Exp)
$(derive ''Con)
$(derive ''Type)
$(derive ''Match)
$(derive ''Clause)
$(derive ''Body)
$(derive ''Guard)
$(derive ''Stmt)
$(derive ''Range)
$(derive ''Lit)
$(derive ''Pat)
$(derive ''Strict)
$(derive ''Foreign)
$(derive ''Callconv)
$(derive ''Safety)
$(derive ''FunDep)
$(derive ''Info)
#ifdef TH_LOC_DERIVEREP
-- This type is only provided in template-haskell-2.3 (included with GHC 6.10)
-- and up.
$(derive ''Loc)
#endif
$(derive ''Fixity)
$(derive ''FixityDirection)
#endif