-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | The stable home of TemplateHaskell's <a>Lift</a> typeclass, which
--   implements cross-stage persistence for Template Haskell.
@package template-haskell-lift
@version 0.1.0.0

module Language.Haskell.TH.Lift
class Lift (t :: TYPE r)
lift :: (Lift t, Quote m) => t -> m Exp
liftTyped :: forall (m :: Type -> Type). (Lift t, Quote m) => t -> Code m t
data Q a
data Code (m :: Type -> Type) (a :: TYPE r)
class Monad m => Quote (m :: Type -> Type)
data Exp

-- | Convert an implementation of <a>lift</a> into one for
--   <a>liftTyped</a>.
defaultLiftTyped :: forall a (m :: Type -> Type). (Lift a, Quote m) => a -> Code m a

-- | A compatibility shim for lifting an <tt>Addr#</tt> value.
liftAddrCompat :: Quote m => ForeignPtr Word8 -> Word -> Word -> m Exp

-- | A compatibility shim for lifting an <a>Int</a> value without
--   triggering bugs if <tt>RebindableSyntax</tt> is used in a module.
liftIntCompat :: Quote m => Integer -> m Exp
