Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data HsType name
- = HsForAllTy HsExplicitFlag (Maybe SrcSpan) (LHsTyVarBndrs name) (LHsContext name) (LHsType name)
- | HsTyVar name
- | HsAppTy (LHsType name) (LHsType name)
- | HsFunTy (LHsType name) (LHsType name)
- | HsListTy (LHsType name)
- | HsPArrTy (LHsType name)
- | HsTupleTy HsTupleSort [LHsType name]
- | HsOpTy (LHsType name) (LHsTyOp name) (LHsType name)
- | HsParTy (LHsType name)
- | HsIParamTy HsIPName (LHsType name)
- | HsEqTy (LHsType name) (LHsType name)
- | HsKindSig (LHsType name) (LHsKind name)
- | HsQuasiQuoteTy (HsQuasiQuote name)
- | HsSpliceTy (HsSplice name) (PostTc name Kind)
- | HsDocTy (LHsType name) LHsDocString
- | HsBangTy HsSrcBang (LHsType name)
- | HsRecTy [LConDeclField name]
- | HsCoreTy Type
- | HsExplicitListTy (PostTc name Kind) [LHsType name]
- | HsExplicitTupleTy [PostTc name Kind] [LHsType name]
- | HsTyLit HsTyLit
- | HsWrapTy HsTyWrapper (HsType name)
- | HsWildcardTy
- | HsNamedWildcardTy name
- type LHsType name = Located (HsType name)
- type HsKind name = HsType name
- type LHsKind name = Located (HsKind name)
- type HsTyOp name = (HsTyWrapper, name)
- type LHsTyOp name = HsTyOp (Located name)
- data HsTyVarBndr name
- = UserTyVar name
- | KindedTyVar (Located name) (LHsKind name)
- type LHsTyVarBndr name = Located (HsTyVarBndr name)
- data LHsTyVarBndrs name = HsQTvs {
- hsq_kvs :: [Name]
- hsq_tvs :: [LHsTyVarBndr name]
- data HsWithBndrs name thing = HsWB {}
- data HsTupleSort
- data HsExplicitFlag
- type HsContext name = [LHsType name]
- type LHsContext name = Located (HsContext name)
- data HsQuasiQuote id = HsQuasiQuote id SrcSpan FastString
- data HsTyWrapper = WpKiApps [Kind]
- data HsTyLit
- newtype HsIPName = HsIPName FastString
- hsIPNameFS :: HsIPName -> FastString
- type LBangType name = Located (BangType name)
- type BangType name = HsType name
- data HsBang
- type HsSrcBang = HsBang
- type HsImplBang = HsBang
- getBangType :: LHsType a -> LHsType a
- getBangStrictness :: LHsType a -> HsSrcBang
- data ConDeclField name = ConDeclField {
- cd_fld_names :: [Located name]
- cd_fld_type :: LBangType name
- cd_fld_doc :: Maybe LHsDocString
- type LConDeclField name = Located (ConDeclField name)
- pprConDeclFields :: OutputableBndr name => [LConDeclField name] -> SDoc
- mkHsQTvs :: [LHsTyVarBndr RdrName] -> LHsTyVarBndrs RdrName
- hsQTvBndrs :: LHsTyVarBndrs name -> [LHsTyVarBndr name]
- isHsKindedTyVar :: HsTyVarBndr name -> Bool
- hsTvbAllKinded :: LHsTyVarBndrs name -> Bool
- mkExplicitHsForAllTy :: [LHsTyVarBndr RdrName] -> LHsContext RdrName -> LHsType RdrName -> HsType RdrName
- mkImplicitHsForAllTy :: LHsType RdrName -> HsType RdrName
- mkQualifiedHsForAllTy :: LHsContext RdrName -> LHsType RdrName -> HsType RdrName
- mkHsForAllTy :: HsExplicitFlag -> [LHsTyVarBndr RdrName] -> LHsContext RdrName -> LHsType RdrName -> HsType RdrName
- flattenTopLevelLHsForAllTy :: LHsType name -> LHsType name
- flattenTopLevelHsForAllTy :: HsType name -> HsType name
- flattenHsForAllTyKeepAnns :: HsType name -> ([AddAnn], HsType name)
- hsExplicitTvs :: LHsType Name -> [Name]
- hsTyVarName :: HsTyVarBndr name -> name
- mkHsWithBndrs :: thing -> HsWithBndrs RdrName thing
- hsLKiTyVarNames :: LHsTyVarBndrs Name -> [Name]
- hsLTyVarName :: LHsTyVarBndr name -> name
- hsLTyVarNames :: LHsTyVarBndrs name -> [name]
- hsLTyVarLocName :: LHsTyVarBndr name -> Located name
- hsLTyVarLocNames :: LHsTyVarBndrs name -> [Located name]
- splitLHsInstDeclTy_maybe :: LHsType name -> Maybe (LHsTyVarBndrs name, HsContext name, Located name, [LHsType name])
- splitHsClassTy_maybe :: HsType name -> Maybe (name, [LHsType name])
- splitLHsClassTy_maybe :: LHsType name -> Maybe (Located name, [LHsType name])
- splitHsFunType :: LHsType Name -> ([LHsType Name], LHsType Name)
- splitHsAppTys :: LHsType n -> [LHsType n] -> (LHsType n, [LHsType n])
- hsTyGetAppHead_maybe :: LHsType n -> Maybe (n, [LHsType n])
- mkHsAppTys :: OutputableBndr n => LHsType n -> [LHsType n] -> HsType n
- mkHsOpTy :: LHsType name -> Located name -> LHsType name -> HsType name
- isWildcardTy :: HsType a -> Bool
- isNamedWildcardTy :: HsType a -> Bool
- pprParendHsType :: OutputableBndr name => HsType name -> SDoc
- pprHsForAll :: OutputableBndr name => HsExplicitFlag -> LHsTyVarBndrs name -> LHsContext name -> SDoc
- pprHsForAllExtra :: OutputableBndr name => HsExplicitFlag -> Maybe SrcSpan -> LHsTyVarBndrs name -> LHsContext name -> SDoc
- pprHsContext :: OutputableBndr name => HsContext name -> SDoc
- pprHsContextNoArrow :: OutputableBndr name => HsContext name -> SDoc
- pprHsContextMaybe :: OutputableBndr name => HsContext name -> Maybe SDoc
Documentation
DataId name => Data (HsType name) | |
OutputableBndr name => Outputable (HsType name) |
type HsTyOp name = (HsTyWrapper, name) Source
data HsTyVarBndr name Source
UserTyVar name | |
KindedTyVar (Located name) (LHsKind name) |
DataId name => Data (HsTyVarBndr name) | |
OutputableBndr name => Outputable (HsTyVarBndr name) |
type LHsTyVarBndr name = Located (HsTyVarBndr name) Source
data LHsTyVarBndrs name Source
HsQTvs | |
|
DataId name => Data (LHsTyVarBndrs name) | |
Monoid (LHsTyVarBndrs name) | |
OutputableBndr name => Outputable (LHsTyVarBndrs name) |
data HsWithBndrs name thing Source
(Data name, Data thing, Data (PostRn name [Name])) => Data (HsWithBndrs name thing) | |
Outputable thing => Outputable (HsWithBndrs name thing) |
data HsTupleSort Source
type LHsContext name Source
data HsQuasiQuote id Source
Data id => Data (HsQuasiQuote id) | |
OutputableBndr id => Outputable (HsQuasiQuote id) |
These names are used early on to store the names of implicit parameters. They completely disappear after type-checking.
hsIPNameFS :: HsIPName -> FastString Source
type HsImplBang = HsBang Source
getBangType :: LHsType a -> LHsType a Source
getBangStrictness :: LHsType a -> HsSrcBang Source
data ConDeclField name Source
ConDeclField | |
|
DataId name => Data (ConDeclField name) |
type LConDeclField name Source
= Located (ConDeclField name) | May have |
pprConDeclFields :: OutputableBndr name => [LConDeclField name] -> SDoc Source
hsQTvBndrs :: LHsTyVarBndrs name -> [LHsTyVarBndr name] Source
isHsKindedTyVar :: HsTyVarBndr name -> Bool Source
Does this HsTyVarBndr
come with an explicit kind annotation?
hsTvbAllKinded :: LHsTyVarBndrs name -> Bool Source
Do all type variables in this LHsTyVarBndr
come with kind annotations?
mkExplicitHsForAllTy :: [LHsTyVarBndr RdrName] -> LHsContext RdrName -> LHsType RdrName -> HsType RdrName Source
mkImplicitHsForAllTy :: LHsType RdrName -> HsType RdrName Source
mkImplicitHsForAllTy is called when we encounter f :: type Wrap around a HsForallTy if one is not there already.
mkHsForAllTy :: HsExplicitFlag -> [LHsTyVarBndr RdrName] -> LHsContext RdrName -> LHsType RdrName -> HsType RdrName Source
Smart constructor for HsForAllTy, which populates the extra-constraints field if a wildcard is present in the context.
flattenTopLevelLHsForAllTy :: LHsType name -> LHsType name Source
When a sigtype is parsed, the type found is wrapped in an Implicit
HsForAllTy via mkImplicitHsForAllTy, to ensure that a signature always has a
forall at the outer level. For Api Annotations this nested structure is
important to ensure that all forall
and .
locations are retained. From
the renamer onwards this structure is flattened, to ease the renaming and
type checking process.
flattenTopLevelHsForAllTy :: HsType name -> HsType name Source
flattenHsForAllTyKeepAnns :: HsType name -> ([AddAnn], HsType name) Source
hsExplicitTvs :: LHsType Name -> [Name] Source
hsTyVarName :: HsTyVarBndr name -> name Source
mkHsWithBndrs :: thing -> HsWithBndrs RdrName thing Source
hsLKiTyVarNames :: LHsTyVarBndrs Name -> [Name] Source
hsLTyVarName :: LHsTyVarBndr name -> name Source
hsLTyVarNames :: LHsTyVarBndrs name -> [name] Source
hsLTyVarLocName :: LHsTyVarBndr name -> Located name Source
hsLTyVarLocNames :: LHsTyVarBndrs name -> [Located name] Source
splitLHsInstDeclTy_maybe :: LHsType name -> Maybe (LHsTyVarBndrs name, HsContext name, Located name, [LHsType name]) Source
splitHsClassTy_maybe :: HsType name -> Maybe (name, [LHsType name]) Source
hsTyGetAppHead_maybe :: LHsType n -> Maybe (n, [LHsType n]) Source
mkHsAppTys :: OutputableBndr n => LHsType n -> [LHsType n] -> HsType n Source
isWildcardTy :: HsType a -> Bool Source
isNamedWildcardTy :: HsType a -> Bool Source
pprParendHsType :: OutputableBndr name => HsType name -> SDoc Source
pprHsForAll :: OutputableBndr name => HsExplicitFlag -> LHsTyVarBndrs name -> LHsContext name -> SDoc Source
pprHsForAllExtra :: OutputableBndr name => HsExplicitFlag -> Maybe SrcSpan -> LHsTyVarBndrs name -> LHsContext name -> SDoc Source
Version of pprHsForAll
that can also print an extra-constraints
wildcard, e.g. _ => a -> Bool
or (Show a, _) => a -> String
. This
underscore will be printed when the 'Maybe SrcSpan' argument is a Just
containing the location of the extra-constraints wildcard. A special
function for this is needed, as the extra-constraints wildcard is removed
from the actual context and type, and stored in a separate field, thus just
printing the type will not print the extra-constraints wildcard.
pprHsContext :: OutputableBndr name => HsContext name -> SDoc Source
pprHsContextNoArrow :: OutputableBndr name => HsContext name -> SDoc Source
pprHsContextMaybe :: OutputableBndr name => HsContext name -> Maybe SDoc Source