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


-- | The 'Lift' typeclass.
--   
--   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 => t -> Q Exp
liftTyped :: Lift t => t -> Q (TExp t)
data Q a
type Code m a = m (TExp a)
type Quote m = (Q ~ m)
data Exp

-- | Convert an implementation of <a>lift</a> into one for
--   <a>liftTyped</a>.
defaultLiftTyped :: (Lift a, Quote m) => a -> Q (TExp 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
