Copyright | (C) 2013-2016 Edward Kmett and Eric Mertens |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Synopsis
- appsT :: TypeQ -> [TypeQ] -> TypeQ
- appsE1 :: ExpQ -> [ExpQ] -> ExpQ
- toTupleT :: [TypeQ] -> TypeQ
- toTupleE :: [ExpQ] -> ExpQ
- toTupleP :: [PatQ] -> PatQ
- conAppsT :: Name -> [Type] -> Type
- newNames :: String -> Int -> Q [Name]
- unfoldType :: Type -> (Type, [Type])
- datatypeTypeKinded :: DatatypeInfo -> Type
- quantifyType :: Cxt -> Type -> Type
- quantifyType' :: Set Name -> Cxt -> Type -> Type
- tvbToType :: TyVarBndr_ flag -> Type
- unSigT :: Type -> Type
- isDataFamily :: DatatypeVariant -> Bool
- lensPackageKey :: String
- mkLensName_tc :: String -> String -> Name
- mkLensName_v :: String -> String -> Name
- traversalTypeName :: Name
- traversal'TypeName :: Name
- lensTypeName :: Name
- lens'TypeName :: Name
- isoTypeName :: Name
- iso'TypeName :: Name
- getterTypeName :: Name
- foldTypeName :: Name
- prismTypeName :: Name
- prism'TypeName :: Name
- reviewTypeName :: Name
- wrappedTypeName :: Name
- unwrappedTypeName :: Name
- rewrappedTypeName :: Name
- _wrapped'ValName :: Name
- isoValName :: Name
- prismValName :: Name
- untoValName :: Name
- phantomValName :: Name
- phantom2 :: (Functor f, Contravariant f) => f a -> f b
- composeValName :: Name
- idValName :: Name
- fmapValName :: Name
- pureValName :: Name
- apValName :: Name
- rightDataName :: Name
- leftDataName :: Name
- inlinePragma :: Name -> [DecQ]
Documentation
Generate many new names from a given base name.
quantifyType :: Cxt -> Type -> Type Source #
Template Haskell wants type variables declared in a forall, so we find all free type variables in a given type and declare them.
quantifyType' :: Set Name -> Cxt -> Type -> Type Source #
This function works like quantifyType
except that it takes
a list of variables to exclude from quantification.
isDataFamily :: DatatypeVariant -> Bool Source #
lensTypeName :: Name Source #
lens'TypeName :: Name Source #
isoTypeName :: Name Source #
iso'TypeName :: Name Source #
foldTypeName :: Name Source #
prismTypeName :: Name Source #
isoValName :: Name Source #
prismValName :: Name Source #
untoValName :: Name Source #
phantom2 :: (Functor f, Contravariant f) => f a -> f b Source #
fmapValName :: Name Source #
pureValName :: Name Source #
rightDataName :: Name Source #
leftDataName :: Name Source #
inlinePragma :: Name -> [DecQ] Source #