PlaceHolder

ghc-8.2.2: The GHC API

Safe Haskell | None
Language | Haskell2010

PlaceHolder

Synopsis

- data PlaceHolder = PlaceHolder
- type family PostTc id ty
- type family PostRn id ty
- placeHolderKind :: PlaceHolder
- placeHolderFixity :: PlaceHolder
- placeHolderType :: PlaceHolder
- placeHolderTypeTc :: Type
- placeHolderNames :: PlaceHolder
- placeHolderNamesTc :: NameSet
- placeHolderHsWrapper :: PlaceHolder
- type DataId id = (DataIdPost id, DataIdPost (NameOrRdrName id))
- type DataIdPost id = (Data id, Data (PostRn id NameSet), Data (PostRn id Fixity), Data (PostRn id Bool), Data (PostRn id Name), Data (PostRn id (Located Name)), Data (PostRn id [Name]), Data (PostRn id id), Data (PostTc id Type), Data (PostTc id Coercion), Data (PostTc id id), Data (PostTc id [Type]), Data (PostTc id ConLike), Data (PostTc id [ConLike]), Data (PostTc id HsWrapper), Data (PostTc id [FieldLabel]))
- type family NameOrRdrName id where ...
- type OutputableBndrId id = (OutputableBndr id, OutputableBndr (NameOrRdrName id))

# Documentation

data PlaceHolder Source #

used as place holder in PostTc and PostRn values

Constructors

PlaceHolder |

Instances

Data PlaceHolder # |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PlaceHolder -> c PlaceHolder Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PlaceHolder Source # toConstr :: PlaceHolder -> Constr Source # dataTypeOf :: PlaceHolder -> DataType Source # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c PlaceHolder) Source # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PlaceHolder) Source # gmapT :: (forall b. Data b => b -> b) -> PlaceHolder -> PlaceHolder Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PlaceHolder -> r Source # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PlaceHolder -> r Source # gmapQ :: (forall d. Data d => d -> u) -> PlaceHolder -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> PlaceHolder -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PlaceHolder -> m PlaceHolder Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PlaceHolder -> m PlaceHolder Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PlaceHolder -> m PlaceHolder Source #

type family PostTc id ty Source #

Types that are not defined until after type checking

Instances

type PostTc Name ty # |
type PostTc Name ty = PlaceHolder
type PostTc RdrName ty # |
type PostTc RdrName ty = PlaceHolder
type PostTc Id ty # |
type PostTc Id ty = ty

type family PostRn id ty Source #

Types that are not defined until after renaming

Instances

type PostRn Name ty # |
type PostRn Name ty = ty
type PostRn RdrName ty # |
type PostRn RdrName ty = PlaceHolder
type PostRn Id ty # |
type PostRn Id ty = ty

placeHolderKind :: PlaceHolder Source #

placeHolderFixity :: PlaceHolder Source #

placeHolderType :: PlaceHolder Source #

placeHolderTypeTc :: Type Source #

placeHolderNames :: PlaceHolder Source #

placeHolderNamesTc :: NameSet Source #

placeHolderHsWrapper :: PlaceHolder Source #

type DataId id = (DataIdPost id, DataIdPost (NameOrRdrName id)) Source #

type DataIdPost id = (Data id, Data (PostRn id NameSet), Data (PostRn id Fixity), Data (PostRn id Bool), Data (PostRn id Name), Data (PostRn id (Located Name)), Data (PostRn id [Name]), Data (PostRn id id), Data (PostTc id Type), Data (PostTc id Coercion), Data (PostTc id id), Data (PostTc id [Type]), Data (PostTc id ConLike), Data (PostTc id [ConLike]), Data (PostTc id HsWrapper), Data (PostTc id [FieldLabel])) Source #

type family NameOrRdrName id where ... Source #

Follow the `id`, but never beyond Name. This is used in a `HsMatchContext`, for printing messages related to a `Match`

Equations

NameOrRdrName Id = Name |
NameOrRdrName Name = Name |
NameOrRdrName RdrName = RdrName |

type OutputableBndrId id = (OutputableBndr id, OutputableBndr (NameOrRdrName id)) Source #

Constraint type to bundle up the requirement for `OutputableBndr` on both the `id` and the `NameOrRdrName` type for it