ghc-8.0.0.20160204: The GHC API

Safe HaskellNone
LanguageHaskell2010

ConLike

Synopsis

Documentation

data ConLike Source

A constructor-like thing

Instances

Eq ConLike 

Methods

(==) :: ConLike -> ConLike -> Bool

(/=) :: ConLike -> ConLike -> Bool

Data ConLike 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConLike -> c ConLike Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConLike Source

toConstr :: ConLike -> Constr Source

dataTypeOf :: ConLike -> DataType Source

dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c ConLike) Source

dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConLike) Source

gmapT :: (forall b. Data b => b -> b) -> ConLike -> ConLike Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConLike -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConLike -> r Source

gmapQ :: (forall d. Data d => d -> u) -> ConLike -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> ConLike -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConLike -> m ConLike Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConLike -> m ConLike Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConLike -> m ConLike Source

Ord ConLike 
OutputableBndr ConLike 
Outputable ConLike 
Uniquable ConLike 
NamedThing ConLike 

conLikeArity :: ConLike -> Arity Source

Number of arguments

conLikeFieldLabels :: ConLike -> [FieldLabel] Source

Names of fields used for selectors

conLikeInstOrigArgTys :: ConLike -> [Type] -> [Type] Source

Returns just the instantiated value argument types of a ConLike, (excluding dictionary args)

conLikeExTyVars :: ConLike -> [TyVar] Source

Existentially quantified type variables

conLikeStupidTheta :: ConLike -> ThetaType Source

The "stupid theta" of the ConLike, such as data Eq a in:

data Eq a => T a = ...

It is empty for PatSynCon as they do not allow such contexts.

conLikeWrapId_maybe :: ConLike -> Maybe Id Source

Returns the Id of the wrapper. This is also known as the builder in some contexts. The value is Nothing only in the case of unidirectional pattern synonyms.

conLikeImplBangs :: ConLike -> [HsImplBang] Source

Returns the strictness information for each constructor

conLikeFullSig :: ConLike -> ([TyVar], [TyVar], [EqSpec], ThetaType, ThetaType, [Type], Type) Source

The "full signature" of the ConLike returns, in order:

1) The universally quanitifed type variables

2) The existentially quantified type variables

3) The equality specification

4) The provided theta (the constraints provided by a match)

5) The required theta (the constraints required for a match)

6) The original argument types (i.e. before any change of the representation of the type)

7) The original result type

conLikeResTy :: ConLike -> [Type] -> Type Source

Returns the type of the whole pattern

conLikeFieldType :: ConLike -> FieldLabelString -> Type Source

Extract the type for any given labelled field of the ConLike

conLikesWithFields :: [ConLike] -> [FieldLabelString] -> [ConLike] Source

The ConLikes that have *all* the given fields