HORIZON HASKELLDocslts/ghc-10.0.xaa25b892026-10-10Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · aa25b89 · 2026-10-10

Moduleghc-internal-10.0.0Haskell2010

GHC.Internal.TH.Lift

This module gives the definition of the Lift class.

This is an internal module. Please import Language.Haskell.TH.Lift, Language.Haskell.TH or Language.Haskell.TH.Syntax instead!

  • 1 class
  • 1 value
classclass 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.

Methods

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

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

  • liftTyped :: Quote m => t -> Code m t

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

Instances108Lift, …
  • Lift VoidDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift IntegerDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift NaturalDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ForeignSrcLangDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Int16Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Int32Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Int64Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Int8Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ExtensionDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Addr#Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift

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

  • Lift Char#Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Double#Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Float#Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Int#Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Word#Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift AnnLookupDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift AnnTargetDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift BangDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift BndrVisDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift BodyDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift BytesDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift CallconvDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ClauseDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ConDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift DecDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift DecidedStrictnessDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift DerivClauseDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift DerivStrategyDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift DocLocDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ExpDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift FamilyResultSigDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift FixityDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift FixityDirectionDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ForeignDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift FunDepDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift GuardDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift InfoDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift InjectivityAnnDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift InlineDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift LitDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift LocDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift MatchDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ModNameDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ModuleDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift NameDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift NameFlavourDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift NameIsDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift NameSpaceDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift NamespaceSpecifierDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift OccNameDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift OverlapDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift PatDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift PatSynArgsDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift PatSynDirDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift PhasesDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift PkgNameDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift PragmaDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift RangeDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift RoleDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift RuleBndrDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift RuleMatchDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift SafetyDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift SourceStrictnessDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift SourceUnpackednessDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift SpecificityDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift StmtDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift TyLitDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift TySynEqnDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift TypeDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift TypeFamilyHeadDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift BoolDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift CharDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift DoubleDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift FloatDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift IntDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift WordDefined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Word16Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Word32Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Word64Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift Word8Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift ()Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift (# #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Integral a => Lift (Ratio a)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift a => Lift (NonEmpty a)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift a => Lift (Maybe a)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift a => Lift (TyVarBndr a)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift a => Lift [a]Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift (TExp a)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b) => Lift (Either a b)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b) => Lift (a, b)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c) => Lift (a, b, c)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d) => Lift (a, b, c, d)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (a, b, c, d, e)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (a, b, c, d, e, f)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (a, b, c, d, e, f, g)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • Lift a => Lift (# a #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b) => Lift (# a, b #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b) => Lift (# a | b #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c) => Lift (# a, b, c #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c) => Lift (# a | b | c #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d) => Lift (# a, b, c, d #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d) => Lift (# a | b | c | d #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (# a, b, c, d, e #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (# a | b | c | d | e #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (# a, b, c, d, e, f #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (# a | b | c | d | e | f #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (# a, b, c, d, e, f, g #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift
  • (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (# a | b | c | d | e | f | g #)Defined in ghc-internal-10.0.0 · GHC.Internal.TH.Lift

Wired-in names

1 declaration