Language.Haskell.TH.Lift.Internal

th-lift-0.8.4: Derive Template Haskell's Lift class for datatypes.

Safe Haskell | Safe-Inferred
Language | Haskell2010

Language.Haskell.TH.Lift.Internal

Description

Helper functions used in code that Language.Haskell.TH.Lift generates.

Note: this is an internal module, and as such, the API presented here is not guaranteed to be stable, even between minor releases of this library.

Synopsis

- errorQuoteExp :: Quote q => String -> q Exp
- unsafeSpliceCoerce :: forall (r :: RuntimeRep) (a :: TYPE r) m. Quote m => m Exp -> Code m a

# Documentation

errorQuoteExp :: Quote q => String -> q Exp #

A type-restricted version of `error` that ensures `makeLift` always returns a value of type `q `Exp`` (where `q` is an instance of `Quote`), even when used on an empty datatype.

unsafeSpliceCoerce :: forall (r :: RuntimeRep) (a :: TYPE r) m. Quote m => m Exp -> Code m a #

This is a cargo-culted version of `unsafeSpliceCoerce` from the `th-compat` library, which has been copied here to avoid incurring a library dependency.

Only available when built with `template-haskell-2.9.0.0` or later.