th-lift
Safe HaskellNone
LanguageHaskell2010

Language.Haskell.TH.Lift

Synopsis

Documentation

deriveLiftMany :: [Name] -> Q [Dec] Source #

Derive Lift instances for many datatypes.

deriveLift' :: [Role] -> Info -> Q [Dec] Source #

Obtain Info values through a custom reification function. This is useful when generating instances for datatypes that have not yet been declared.

makeLift :: Name -> Q Exp Source #

Generates a lambda expresson which behaves like lift (without requiring a Lift instance). Example:

newtype Fix f = In { out :: f (Fix f) }

instance Lift (f (Fix f)) => Lift (Fix f) where
  lift = $(makeLift ''Fix)

This can be useful when deriveLift is not clever enough to infer the correct instance context, such as in the example above.

makeLift' :: Info -> Q Exp Source #

Like makeLift, but using a custom reification function.

class Lift (t :: TYPE r) where #

A Lift instance can have any of its values turned into a Template Haskell expression. This is needed when a value used within a Template Haskell quotation is bound outside the Oxford brackets ([| ... |] or [|| ... ||]) but not at the top level. As an example:

add1 :: Int -> Code Q Int
add1 x = [|| x + 1 ||]

Template Haskell has no way of knowing what value x will take on at splice-time, so it requires the type of x to be an instance of Lift.

A Lift instance must satisfy $(lift x) ≡ x and $$(liftTyped x) ≡ x for all x, where $(...) and $$(...) are Template Haskell splices. It is additionally expected that lift x ≡ unTypeCode (liftTyped x).

Lift instances can be derived automatically by use of the -XDeriveLift GHC language extension:

{-# LANGUAGE DeriveLift #-}
module Foo where

import Language.Haskell.TH.Syntax

data Bar a = Bar1 a (Bar a) | Bar2 String
  deriving Lift

Representation-polymorphic since template-haskell-2.16.0.0.

This is exposed both from the template-haskell-lift and template-haskell packages. Consider importing it from the more stable template-haskell-lift if you don't need the full breadth of the template-haskell interface.

Minimal complete definition

liftTyped

Methods

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

Turn a value into a Template Haskell expression, suitable for use in a splice.

default lift :: forall m. (r ~ LiftedRep, Quote m) => t -> m Exp #

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

Turn a value into a Template Haskell typed expression, suitable for use in a typed splice.

Since: template-haskell-2.16.0.0

Instances

Instances details
Lift Addr# #

Produces an Addr# literal from the NUL-terminated C-string starting at the given memory address.

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Double# #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Float# #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Int# #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift ByteArray # 
Instance details

Defined in Data.Array.Byte

Methods

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

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

Lift Void #

Since: template-haskell-2.15.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift ForeignSrcLang #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Int16 # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Int32 # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Int64 # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Int8 # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Extension #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift AnnLookup #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift AnnTarget #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Bang #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift BndrVis #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Body #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Bytes #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Callconv #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Clause #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Con #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Dec #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift DecidedStrictness #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift DerivClause #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift DerivStrategy #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift DocLoc #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Exp #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift FamilyResultSig #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Fixity #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift FixityDirection #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Foreign #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift FunDep #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Guard #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Info #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift InjectivityAnn #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Inline #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Lit #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Loc #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Match #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift ModName #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Module #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Name #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift NameFlavour #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift NameIs #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift NameSpace #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift NamespaceSpecifier #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Lift OccName #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Overlap #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Pat #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift PatSynArgs #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift PatSynDir #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Phases #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift PkgName #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Pragma #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Range #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Role #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift RuleBndr #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift RuleMatch #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Safety #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift SourceStrictness #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift SourceUnpackedness #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Lift Specificity #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Stmt #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift TyLit #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift TySynEqn #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Type #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift TypeFamilyHead #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Word16 # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Word32 # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Word64 # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Word8 # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Integer # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Natural # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift () # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => () -> m Exp #

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

Lift Bool # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Char # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Double # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Float # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Int # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Word # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Char# #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift Word# #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

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

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

Lift (# #) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# #) -> m Exp #

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

Lift a => Lift (NonEmpty a :: Type) #

Since: template-haskell-2.15.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => NonEmpty a -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => NonEmpty a -> Code m (NonEmpty a) #

Integral a => Lift (Ratio a :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => Ratio a -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Ratio a -> Code m (Ratio a) #

Lift a => Lift (TyVarBndr a :: Type) #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => TyVarBndr a -> m Exp #

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

Lift a => Lift (Maybe a :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => Maybe a -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Maybe a -> Code m (Maybe a) #

Lift a => Lift ([a] :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => [a] -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => [a] -> Code m [a] #

Lift (Fixed a :: Type) #

Since: base-4.21.0.0

Instance details

Defined in Data.Fixed

Methods

lift :: Quote m => Fixed a -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Fixed a -> Code m (Fixed a) #

(Lift a, Lift b) => Lift (Either a b :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => Either a b -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Either a b -> Code m (Either a b) #

Lift (TExp a :: Type) #

Since: template-haskell-2.22.1.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => TExp a -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => TExp a -> Code m (TExp a) #

(Lift a, Lift b) => Lift ((a, b) :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (a, b) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (a, b) -> Code m (a, b) #

(Lift a, Lift b, Lift c) => Lift ((a, b, c) :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (a, b, c) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (a, b, c) -> Code m (a, b, c) #

(Lift a, Lift b, Lift c, Lift d) => Lift ((a, b, c, d) :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (a, b, c, d) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (a, b, c, d) -> Code m (a, b, c, d) #

(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift ((a, b, c, d, e) :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (a, b, c, d, e) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (a, b, c, d, e) -> Code m (a, b, c, d, e) #

(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift ((a, b, c, d, e, f) :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (a, b, c, d, e, f) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (a, b, c, d, e, f) -> Code m (a, b, c, d, e, f) #

(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift ((a, b, c, d, e, f, g) :: Type) # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (a, b, c, d, e, f, g) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (a, b, c, d, e, f, g) -> Code m (a, b, c, d, e, f, g) #

Lift a => Lift ((# a #) :: TYPE ('TupleRep '[LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a #) -> m Exp #

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

(Lift a, Lift b) => Lift ((# a | b #) :: TYPE ('SumRep '[LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a | b #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b #) -> Code m (# a | b #) #

(Lift a, Lift b) => Lift ((# a, b #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a, b #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b #) -> Code m (# a, b #) #

(Lift a, Lift b, Lift c) => Lift ((# a | b | c #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a | b | c #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b | c #) -> Code m (# a | b | c #) #

(Lift a, Lift b, Lift c) => Lift ((# a, b, c #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a, b, c #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b, c #) -> Code m (# a, b, c #) #

(Lift a, Lift b, Lift c, Lift d) => Lift ((# a | b | c | d #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a | b | c | d #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b | c | d #) -> Code m (# a | b | c | d #) #

(Lift a, Lift b, Lift c, Lift d) => Lift ((# a, b, c, d #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a, b, c, d #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b, c, d #) -> Code m (# a, b, c, d #) #

(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift ((# a | b | c | d | e #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a | b | c | d | e #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b | c | d | e #) -> Code m (# a | b | c | d | e #) #

(Lift a, Lift b, Lift c, Lift d, Lift e) => Lift ((# a, b, c, d, e #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a, b, c, d, e #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b, c, d, e #) -> Code m (# a, b, c, d, e #) #

(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift ((# a | b | c | d | e | f #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a | b | c | d | e | f #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b | c | d | e | f #) -> Code m (# a | b | c | d | e | f #) #

(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift ((# a, b, c, d, e, f #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a, b, c, d, e, f #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b, c, d, e, f #) -> Code m (# a, b, c, d, e, f #) #

(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift ((# a | b | c | d | e | f | g #) :: TYPE ('SumRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a | b | c | d | e | f | g #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a | b | c | d | e | f | g #) -> Code m (# a | b | c | d | e | f | g #) #

(Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift ((# a, b, c, d, e, f, g #) :: TYPE ('TupleRep '[LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep, LiftedRep])) #

Since: template-haskell-2.16.0.0

Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => (# a, b, c, d, e, f, g #) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (# a, b, c, d, e, f, g #) -> Code m (# a, b, c, d, e, f, g #) #