BNFC-meta-0.6.1: Deriving Parsers and Quasi-Quoters from BNF Grammars
Safe HaskellNone
LanguageHaskell98

Language.LBNF.Compiletime

Description

Contains things needed by BNFC-meta language definitions and by the code generated from those. Typical users don't need to browse this module.

Synopsis

Happy and Alex

data HappyStk a infixr 9 #

Constructors

HappyStk a (HappyStk a) infixr 9 

data Posn Source #

Constructors

Pn !Int !Int !Int 

Instances

Instances details
Show Posn Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

showsPrec :: Int -> Posn -> ShowS #

show :: Posn -> String #

showList :: [Posn] -> ShowS #

Eq Posn Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

(==) :: Posn -> Posn -> Bool #

(/=) :: Posn -> Posn -> Bool #

Ord Posn Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

compare :: Posn -> Posn -> Ordering #

(<) :: Posn -> Posn -> Bool #

(<=) :: Posn -> Posn -> Bool #

(>) :: Posn -> Posn -> Bool #

(>=) :: Posn -> Posn -> Bool #

max :: Posn -> Posn -> Posn #

min :: Posn -> Posn -> Posn #

ord :: Char -> Int #

The fromEnum method restricted to the type Char.

listArray :: Ix i => (i, i) -> [e] -> Array i e #

Construct an array from a pair of bounds and a list of values in index order.

(!) :: Ix i => Array i e -> i -> e infixl 9 #

The value at the given index in an array.

data Array i e #

The type of immutable non-strict (boxed) arrays with indices in i and elements in e.

Instances

Instances details
IArray Array e 
Instance details

Defined in Data.Array.Base

Methods

bounds :: Ix i => Array i e -> (i, i) #

numElements :: Ix i => Array i e -> Int #

unsafeArray :: Ix i => (i, i) -> [(Int, e)] -> Array i e #

unsafeAt :: Ix i => Array i e -> Int -> e #

unsafeReplace :: Ix i => Array i e -> [(Int, e)] -> Array i e #

unsafeAccum :: Ix i => (e -> e' -> e) -> Array i e -> [(Int, e')] -> Array i e #

unsafeAccumArray :: Ix i => (e -> e' -> e) -> e -> (i, i) -> [(Int, e')] -> Array i e #

Functor (Array i)

Since: base-2.1

Instance details

Defined in GHC.Internal.Arr

Methods

fmap :: (a -> b) -> Array i a -> Array i b #

(<$) :: a -> Array i b -> Array i a #

Foldable (Array i)

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Foldable

Methods

fold :: Monoid m => Array i m -> m #

foldMap :: Monoid m => (a -> m) -> Array i a -> m #

foldMap' :: Monoid m => (a -> m) -> Array i a -> m #

foldr :: (a -> b -> b) -> b -> Array i a -> b #

foldr' :: (a -> b -> b) -> b -> Array i a -> b #

foldl :: (b -> a -> b) -> b -> Array i a -> b #

foldl' :: (b -> a -> b) -> b -> Array i a -> b #

foldr1 :: (a -> a -> a) -> Array i a -> a #

foldl1 :: (a -> a -> a) -> Array i a -> a #

toList :: Array i a -> [a] #

null :: Array i a -> Bool #

length :: Array i a -> Int #

elem :: Eq a => a -> Array i a -> Bool #

maximum :: Ord a => Array i a -> a #

minimum :: Ord a => Array i a -> a #

sum :: Num a => Array i a -> a #

product :: Num a => Array i a -> a #

Ix i => Traversable (Array i)

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> Array i a -> f (Array i b) #

sequenceA :: Applicative f => Array i (f a) -> f (Array i a) #

mapM :: Monad m => (a -> m b) -> Array i a -> m (Array i b) #

sequence :: Monad m => Array i (m a) -> m (Array i a) #

(Data a, Data b, Ix a) => Data (Array a b)

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Data.Data

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Array a b -> c (Array a b) #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Array a b) #

toConstr :: Array a b -> Constr #

dataTypeOf :: Array a b -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Array a b)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Array a b)) #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> Array a b -> Array a b #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Array a b -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Array a b -> r #

gmapQ :: (forall d. Data d => d -> u) -> Array a b -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Array a b -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) #

(Ix a, Read a, Read b) => Read (Array a b)

Since: base-2.1

Instance details

Defined in GHC.Internal.Read

(Ix a, Show a, Show b) => Show (Array a b)

Since: base-2.1

Instance details

Defined in GHC.Internal.Arr

Methods

showsPrec :: Int -> Array a b -> ShowS #

show :: Array a b -> String #

showList :: [Array a b] -> ShowS #

(Ix i, Eq e) => Eq (Array i e)

Since: base-2.1

Instance details

Defined in GHC.Internal.Arr

Methods

(==) :: Array i e -> Array i e -> Bool #

(/=) :: Array i e -> Array i e -> Bool #

(Ix i, Ord e) => Ord (Array i e)

Since: base-2.1

Instance details

Defined in GHC.Internal.Arr

Methods

compare :: Array i e -> Array i e -> Ordering #

(<) :: Array i e -> Array i e -> Bool #

(<=) :: Array i e -> Array i e -> Bool #

(>) :: Array i e -> Array i e -> Bool #

(>=) :: Array i e -> Array i e -> Bool #

max :: Array i e -> Array i e -> Array i e #

min :: Array i e -> Array i e -> Array i e #

Pretty printing

class Print a where Source #

Minimal complete definition

prt

Methods

prt :: Int -> a -> Doc Source #

prtList :: [a] -> Doc Source #

Instances

Instances details
Print Arg Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Arg -> Doc Source #

prtList :: [Arg] -> Doc Source #

Print Cat Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Cat -> Doc Source #

prtList :: [Cat] -> Doc Source #

Print Def Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Def -> Doc Source #

prtList :: [Def] -> Doc Source #

Print Exp Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Exp -> Doc Source #

prtList :: [Exp] -> Doc Source #

Print Grammar Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Grammar -> Doc Source #

prtList :: [Grammar] -> Doc Source #

Print HsTyp Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> HsTyp -> Doc Source #

prtList :: [HsTyp] -> Doc Source #

Print Ident Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Ident -> Doc Source #

prtList :: [Ident] -> Doc Source #

Print Item Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Item -> Doc Source #

prtList :: [Item] -> Doc Source #

Print Label Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Label -> Doc Source #

prtList :: [Label] -> Doc Source #

Print MIdent Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> MIdent -> Doc Source #

prtList :: [MIdent] -> Doc Source #

Print MinimumSize Source # 
Instance details

Defined in Language.LBNF.Grammar

Print RHS Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> RHS -> Doc Source #

prtList :: [RHS] -> Doc Source #

Print Reg Source # 
Instance details

Defined in Language.LBNF.Grammar

Methods

prt :: Int -> Reg -> Doc Source #

prtList :: [Reg] -> Doc Source #

Print PrintPlain Source # 
Instance details

Defined in Language.LBNF.Runtime

Print Integer Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

prt :: Int -> Integer -> Doc Source #

prtList :: [Integer] -> Doc Source #

Print Char Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

prt :: Int -> Char -> Doc Source #

prtList :: [Char] -> Doc Source #

Print Double Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

prt :: Int -> Double -> Doc Source #

prtList :: [Double] -> Doc Source #

Print a => Print [a] Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

prt :: Int -> [a] -> Doc Source #

prtList :: [[a]] -> Doc Source #

prPrec :: Int -> Int -> Doc -> Doc Source #

newtype PrintPlain Source #

Constructors

MkPrintPlain String 

Instances

Instances details
Print PrintPlain Source # 
Instance details

Defined in Language.LBNF.Runtime

Quasi quoting

data ParseMonad a Source #

Constructors

Ok a 
Bad String 

Instances

Instances details
Applicative ParseMonad Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

pure :: a -> ParseMonad a #

(<*>) :: ParseMonad (a -> b) -> ParseMonad a -> ParseMonad b #

liftA2 :: (a -> b -> c) -> ParseMonad a -> ParseMonad b -> ParseMonad c #

(*>) :: ParseMonad a -> ParseMonad b -> ParseMonad b #

(<*) :: ParseMonad a -> ParseMonad b -> ParseMonad a #

Functor ParseMonad Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

fmap :: (a -> b) -> ParseMonad a -> ParseMonad b #

(<$) :: a -> ParseMonad b -> ParseMonad a #

Monad ParseMonad Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

(>>=) :: ParseMonad a -> (a -> ParseMonad b) -> ParseMonad b #

(>>) :: ParseMonad a -> ParseMonad b -> ParseMonad b #

return :: a -> ParseMonad a #

MonadFail ParseMonad Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

fail :: String -> ParseMonad a #

Read a => Read (ParseMonad a) Source # 
Instance details

Defined in Language.LBNF.Runtime

Show a => Show (ParseMonad a) Source # 
Instance details

Defined in Language.LBNF.Runtime

Eq a => Eq (ParseMonad a) Source # 
Instance details

Defined in Language.LBNF.Runtime

Methods

(==) :: ParseMonad a -> ParseMonad a -> Bool #

(/=) :: ParseMonad a -> ParseMonad a -> Bool #

Ord a => Ord (ParseMonad a) Source # 
Instance details

Defined in Language.LBNF.Runtime

errq :: (String -> a) -> ParseMonad a -> Q a Source #

data Q a #

Instances

Instances details
MonadIO Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

liftIO :: IO a -> Q a #

Applicative Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

pure :: a -> Q a #

(<*>) :: Q (a -> b) -> Q a -> Q b #

liftA2 :: (a -> b -> c) -> Q a -> Q b -> Q c #

(*>) :: Q a -> Q b -> Q b #

(<*) :: Q a -> Q b -> Q a #

Functor Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

fmap :: (a -> b) -> Q a -> Q b #

(<$) :: a -> Q b -> Q a #

Monad Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(>>=) :: Q a -> (a -> Q b) -> Q b #

(>>) :: Q a -> Q b -> Q b #

return :: a -> Q a #

MonadFail Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

fail :: String -> Q a #

MonadFix Q

If the function passed to mfix inspects its argument, the resulting action will throw a FixIOException.

Since: template-haskell-2.17.0.0

Instance details

Defined in Language.Haskell.TH.Syntax

Methods

mfix :: (a -> Q a) -> Q a #

Quasi Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Quote Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

newName :: String -> Q Name #

Monoid a => Monoid (Q a)

Since: template-haskell-2.17.0.0

Instance details

Defined in Language.Haskell.TH.Syntax

Methods

mempty :: Q a #

mappend :: Q a -> Q a -> Q a #

mconcat :: [Q a] -> Q a #

Semigroup a => Semigroup (Q a)

Since: template-haskell-2.17.0.0

Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(<>) :: Q a -> Q a -> Q a #

sconcat :: NonEmpty (Q a) -> Q a #

stimes :: Integral b => b -> Q a -> Q a #

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.

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

Methods

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

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

Lift ByteArray

Since: template-haskell-2.19.0.0

Instance details

Defined in Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

Methods

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

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

Lift Int16 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Int32 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Int64 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Int8 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Word16 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Word32 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Word64 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Word8 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Integer 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Natural 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift () 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Bool 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Char 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Double 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Float 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Int 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

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

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

Lift Word 
Instance details

Defined in Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

Methods

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

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

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

Defined in Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

Methods

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

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

Lift (Fixed a :: Type) 
Instance details

Defined in Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 a, Lift b) => Lift ((a, b) :: Type) 
Instance details

Defined in Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 Language.Haskell.TH.Syntax

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 #) #

class Literal a where Source #

Methods

lit :: a -> Lit Source #

Instances

Instances details
Literal Integer Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

lit :: Integer -> Lit Source #

Literal Char Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

lit :: Char -> Lit Source #

Literal Double Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

lit :: Double -> Lit Source #

IsChar a => Literal [a] Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

lit :: [a] -> Lit Source #

class IsChar a where Source #

Methods

toChar :: a -> Char Source #

Instances

Instances details
IsChar Char Source # 
Instance details

Defined in Language.LBNF.Compiletime

Methods

toChar :: Char -> Char Source #

Helper functions for defining Anti-quotation