th-orphans-0.13.14: Orphan instances for TH datatypes
Copyright(c) Matt Morrow 2008
LicenseBSD3
MaintainerMichael Sloan <mgsloan at gmail>
Stabilityexperimental
Portabilityportable (template-haskell)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.Haskell.TH.Instances

Description

It provides the following instances:

  • Ord, Lift, Generic, Show, Eq, Data, Typeable, Ppr, instances for the datatypes in Language.Haskell.TH
  • Lift instances for Data.Word / Data.Int types
  • Applicative for Q
  • Quasi for ReaderT, WriterT, StateT, and RWST.
  • Typeable for Lift, NameIs, Ppr, PprM, Q, Quasi, QuasiQuoter, and TExp

More recent versions of template-haskell, particularly 2.10 (GHC 7.10), provide these instances. However, in order to support older versions you should import this module.

Note that the Ord instances are not guaranteed to produce consistent results across template-haskell / GHC versions, as they have different data types, with different constructor orders.

This module also implicitly re-exports the instances defined in Instances.TH.Lift. This is mostly to ensure that there aren't collisions of orphans between th-orphans and th-lift-instances.

Orphan instances

Lift AnnTarget Source # 
Instance details

Methods

lift :: Quote m => AnnTarget -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => AnnTarget -> Code m AnnTarget

Lift Bang Source # 
Instance details

Methods

lift :: Quote m => Bang -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Bang -> Code m Bang

Lift Body Source # 
Instance details

Methods

lift :: Quote m => Body -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Body -> Code m Body

Lift Bytes Source # 
Instance details

Methods

lift :: Quote m => Bytes -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Bytes -> Code m Bytes

Lift Callconv Source # 
Instance details

Methods

lift :: Quote m => Callconv -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Callconv -> Code m Callconv

Lift Clause Source # 
Instance details

Methods

lift :: Quote m => Clause -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Clause -> Code m Clause

Lift Con Source # 
Instance details

Methods

lift :: Quote m => Con -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Con -> Code m Con

Lift Dec Source # 
Instance details

Methods

lift :: Quote m => Dec -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Dec -> Code m Dec

Lift DerivClause Source # 
Instance details

Methods

lift :: Quote m => DerivClause -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => DerivClause -> Code m DerivClause

Lift DerivStrategy Source # 
Instance details

Methods

lift :: Quote m => DerivStrategy -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => DerivStrategy -> Code m DerivStrategy

Lift Exp Source # 
Instance details

Methods

lift :: Quote m => Exp -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Exp -> Code m Exp

Lift FamilyResultSig Source # 
Instance details

Methods

lift :: Quote m => FamilyResultSig -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => FamilyResultSig -> Code m FamilyResultSig

Lift Fixity Source # 
Instance details

Methods

lift :: Quote m => Fixity -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Fixity -> Code m Fixity

Lift FixityDirection Source # 
Instance details

Methods

lift :: Quote m => FixityDirection -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => FixityDirection -> Code m FixityDirection

Lift Foreign Source # 
Instance details

Methods

lift :: Quote m => Foreign -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Foreign -> Code m Foreign

Lift FunDep Source # 
Instance details

Methods

lift :: Quote m => FunDep -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => FunDep -> Code m FunDep

Lift Guard Source # 
Instance details

Methods

lift :: Quote m => Guard -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Guard -> Code m Guard

Lift Info Source # 
Instance details

Methods

lift :: Quote m => Info -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Info -> Code m Info

Lift InjectivityAnn Source # 
Instance details

Methods

lift :: Quote m => InjectivityAnn -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => InjectivityAnn -> Code m InjectivityAnn

Lift Inline Source # 
Instance details

Methods

lift :: Quote m => Inline -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Inline -> Code m Inline

Lift Lit Source # 
Instance details

Methods

lift :: Quote m => Lit -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Lit -> Code m Lit

Lift Loc Source # 
Instance details

Methods

lift :: Quote m => Loc -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Loc -> Code m Loc

Lift Match Source # 
Instance details

Methods

lift :: Quote m => Match -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Match -> Code m Match

Lift Overlap Source # 
Instance details

Methods

lift :: Quote m => Overlap -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Overlap -> Code m Overlap

Lift Pat Source # 
Instance details

Methods

lift :: Quote m => Pat -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Pat -> Code m Pat

Lift PatSynArgs Source # 
Instance details

Methods

lift :: Quote m => PatSynArgs -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => PatSynArgs -> Code m PatSynArgs

Lift PatSynDir Source # 
Instance details

Methods

lift :: Quote m => PatSynDir -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => PatSynDir -> Code m PatSynDir

Lift Phases Source # 
Instance details

Methods

lift :: Quote m => Phases -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Phases -> Code m Phases

Lift Pragma Source # 
Instance details

Methods

lift :: Quote m => Pragma -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Pragma -> Code m Pragma

Lift Range Source # 
Instance details

Methods

lift :: Quote m => Range -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Range -> Code m Range

Lift Role Source # 
Instance details

Methods

lift :: Quote m => Role -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Role -> Code m Role

Lift RuleBndr Source # 
Instance details

Methods

lift :: Quote m => RuleBndr -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => RuleBndr -> Code m RuleBndr

Lift RuleMatch Source # 
Instance details

Methods

lift :: Quote m => RuleMatch -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => RuleMatch -> Code m RuleMatch

Lift Safety Source # 
Instance details

Methods

lift :: Quote m => Safety -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Safety -> Code m Safety

Lift SourceStrictness Source # 
Instance details

Methods

lift :: Quote m => SourceStrictness -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => SourceStrictness -> Code m SourceStrictness

Lift SourceUnpackedness Source # 
Instance details

Methods

lift :: Quote m => SourceUnpackedness -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => SourceUnpackedness -> Code m SourceUnpackedness

Lift Specificity Source # 
Instance details

Methods

lift :: Quote m => Specificity -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Specificity -> Code m Specificity

Lift Stmt Source # 
Instance details

Methods

lift :: Quote m => Stmt -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => Stmt -> Code m Stmt

Lift TyLit Source # 
Instance details

Methods

lift :: Quote m => TyLit -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => TyLit -> Code m TyLit

Lift TySynEqn Source # 
Instance details

Methods

lift :: Quote m => TySynEqn -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => TySynEqn -> Code m TySynEqn

Lift Type Source # 
Instance details

Methods

lift :: Quote m => Type -> m Exp

liftTyped :: forall (m :: Type0 -> Type0). Quote m => Type -> Code m Type

Lift TypeFamilyHead Source # 
Instance details

Methods

lift :: Quote m => TypeFamilyHead -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => TypeFamilyHead -> Code m TypeFamilyHead

Lift flag => Lift (TyVarBndr flag :: Type) Source # 
Instance details

Methods

lift :: Quote m => TyVarBndr flag -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => TyVarBndr flag -> Code m (TyVarBndr flag)

Quasi m => Quasi (ReaderT r m) Source # 
Instance details

Methods

qNewName :: String -> ReaderT r m Name

qReport :: Bool -> String -> ReaderT r m ()

qRecover :: ReaderT r m a -> ReaderT r m a -> ReaderT r m a

qLookupName :: Bool -> String -> ReaderT r m (Maybe Name)

qReify :: Name -> ReaderT r m Info

qReifyFixity :: Name -> ReaderT r m (Maybe Fixity)

qReifyType :: Name -> ReaderT r m Type

qReifyInstances :: Name -> [Type] -> ReaderT r m [Dec]

qReifyRoles :: Name -> ReaderT r m [Role]

qReifyAnnotations :: Data a => AnnLookup -> ReaderT r m [a]

qReifyModule :: Module -> ReaderT r m ModuleInfo

qReifyConStrictness :: Name -> ReaderT r m [DecidedStrictness]

qLocation :: ReaderT r m Loc

qRunIO :: IO a -> ReaderT r m a

qAddDependentFile :: FilePath -> ReaderT r m ()

qAddTempFile :: String -> ReaderT r m FilePath

qAddTopDecls :: [Dec] -> ReaderT r m ()

qAddForeignFilePath :: ForeignSrcLang -> String -> ReaderT r m ()

qAddModFinalizer :: Q () -> ReaderT r m ()

qAddCorePlugin :: String -> ReaderT r m ()

qGetQ :: Typeable a => ReaderT r m (Maybe a)

qPutQ :: Typeable a => a -> ReaderT r m ()

qIsExtEnabled :: Extension -> ReaderT r m Bool

qExtsEnabled :: ReaderT r m [Extension]

qPutDoc :: DocLoc -> String -> ReaderT r m ()

qGetDoc :: DocLoc -> ReaderT r m (Maybe String)

Quasi m => Quasi (StateT s m) Source # 
Instance details

Methods

qNewName :: String -> StateT s m Name

qReport :: Bool -> String -> StateT s m ()

qRecover :: StateT s m a -> StateT s m a -> StateT s m a

qLookupName :: Bool -> String -> StateT s m (Maybe Name)

qReify :: Name -> StateT s m Info

qReifyFixity :: Name -> StateT s m (Maybe Fixity)

qReifyType :: Name -> StateT s m Type

qReifyInstances :: Name -> [Type] -> StateT s m [Dec]

qReifyRoles :: Name -> StateT s m [Role]

qReifyAnnotations :: Data a => AnnLookup -> StateT s m [a]

qReifyModule :: Module -> StateT s m ModuleInfo

qReifyConStrictness :: Name -> StateT s m [DecidedStrictness]

qLocation :: StateT s m Loc

qRunIO :: IO a -> StateT s m a

qAddDependentFile :: FilePath -> StateT s m ()

qAddTempFile :: String -> StateT s m FilePath

qAddTopDecls :: [Dec] -> StateT s m ()

qAddForeignFilePath :: ForeignSrcLang -> String -> StateT s m ()

qAddModFinalizer :: Q () -> StateT s m ()

qAddCorePlugin :: String -> StateT s m ()

qGetQ :: Typeable a => StateT s m (Maybe a)

qPutQ :: Typeable a => a -> StateT s m ()

qIsExtEnabled :: Extension -> StateT s m Bool

qExtsEnabled :: StateT s m [Extension]

qPutDoc :: DocLoc -> String -> StateT s m ()

qGetDoc :: DocLoc -> StateT s m (Maybe String)

(Quasi m, Monoid w) => Quasi (WriterT w m) Source # 
Instance details

Methods

qNewName :: String -> WriterT w m Name

qReport :: Bool -> String -> WriterT w m ()

qRecover :: WriterT w m a -> WriterT w m a -> WriterT w m a

qLookupName :: Bool -> String -> WriterT w m (Maybe Name)

qReify :: Name -> WriterT w m Info

qReifyFixity :: Name -> WriterT w m (Maybe Fixity)

qReifyType :: Name -> WriterT w m Type

qReifyInstances :: Name -> [Type] -> WriterT w m [Dec]

qReifyRoles :: Name -> WriterT w m [Role]

qReifyAnnotations :: Data a => AnnLookup -> WriterT w m [a]

qReifyModule :: Module -> WriterT w m ModuleInfo

qReifyConStrictness :: Name -> WriterT w m [DecidedStrictness]

qLocation :: WriterT w m Loc

qRunIO :: IO a -> WriterT w m a

qAddDependentFile :: FilePath -> WriterT w m ()

qAddTempFile :: String -> WriterT w m FilePath

qAddTopDecls :: [Dec] -> WriterT w m ()

qAddForeignFilePath :: ForeignSrcLang -> String -> WriterT w m ()

qAddModFinalizer :: Q () -> WriterT w m ()

qAddCorePlugin :: String -> WriterT w m ()

qGetQ :: Typeable a => WriterT w m (Maybe a)

qPutQ :: Typeable a => a -> WriterT w m ()

qIsExtEnabled :: Extension -> WriterT w m Bool

qExtsEnabled :: WriterT w m [Extension]

qPutDoc :: DocLoc -> String -> WriterT w m ()

qGetDoc :: DocLoc -> WriterT w m (Maybe String)

Quote m => Quote (ReaderT r m) Source # 
Instance details

Methods

newName :: String -> ReaderT r m Name

Quote m => Quote (StateT s m) Source # 
Instance details

Methods

newName :: String -> StateT s m Name

(Quote m, Monoid w) => Quote (WriterT w m) Source # 
Instance details

Methods

newName :: String -> WriterT w m Name

(Quasi m, Monoid w) => Quasi (RWST r w s m) Source # 
Instance details

Methods

qNewName :: String -> RWST r w s m Name

qReport :: Bool -> String -> RWST r w s m ()

qRecover :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a

qLookupName :: Bool -> String -> RWST r w s m (Maybe Name)

qReify :: Name -> RWST r w s m Info

qReifyFixity :: Name -> RWST r w s m (Maybe Fixity)

qReifyType :: Name -> RWST r w s m Type

qReifyInstances :: Name -> [Type] -> RWST r w s m [Dec]

qReifyRoles :: Name -> RWST r w s m [Role]

qReifyAnnotations :: Data a => AnnLookup -> RWST r w s m [a]

qReifyModule :: Module -> RWST r w s m ModuleInfo

qReifyConStrictness :: Name -> RWST r w s m [DecidedStrictness]

qLocation :: RWST r w s m Loc

qRunIO :: IO a -> RWST r w s m a

qAddDependentFile :: FilePath -> RWST r w s m ()

qAddTempFile :: String -> RWST r w s m FilePath

qAddTopDecls :: [Dec] -> RWST r w s m ()

qAddForeignFilePath :: ForeignSrcLang -> String -> RWST r w s m ()

qAddModFinalizer :: Q () -> RWST r w s m ()

qAddCorePlugin :: String -> RWST r w s m ()

qGetQ :: Typeable a => RWST r w s m (Maybe a)

qPutQ :: Typeable a => a -> RWST r w s m ()

qIsExtEnabled :: Extension -> RWST r w s m Bool

qExtsEnabled :: RWST r w s m [Extension]

qPutDoc :: DocLoc -> String -> RWST r w s m ()

qGetDoc :: DocLoc -> RWST r w s m (Maybe String)

(Quote m, Monoid w) => Quote (RWST r w s m) Source # 
Instance details

Methods

newName :: String -> RWST r w s m Name