| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
GHC.Core.ConLike
Synopsis
- data ConLike
- isVanillaConLike :: ConLike -> Bool
- conLikeArity :: ConLike -> Arity
- conLikeFieldLabels :: ConLike -> [FieldLabel]
- conLikeInstOrigArgTys :: ConLike -> [Type] -> [Scaled Type]
- conLikeUserTyVarBinders :: ConLike -> [InvisTVBinder]
- conLikeExTyCoVars :: ConLike -> [TyCoVar]
- conLikeName :: ConLike -> Name
- conLikeStupidTheta :: ConLike -> ThetaType
- conLikeImplBangs :: ConLike -> [HsImplBang]
- conLikeFullSig :: ConLike -> ([TyVar], [TyCoVar], [EqSpec], ThetaType, ThetaType, [Scaled Type], Type)
- conLikeResTy :: ConLike -> [Type] -> Type
- conLikeFieldType :: ConLike -> FieldLabelString -> Type
- conLikesWithFields :: [ConLike] -> [FieldLabelString] -> [ConLike]
- conLikeIsInfix :: ConLike -> Bool
- conLikeHasBuilder :: ConLike -> Bool
Documentation
A constructor-like thing
Constructors
| RealDataCon DataCon | |
| PatSynCon PatSyn |
Instances
| Data ConLike # | |
Defined in GHC.Core.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 t => (forall d. Data d => c (t d)) -> Maybe (c ConLike) Source # dataCast2 :: Typeable 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 :: forall r r'. (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 # | |
| NamedThing ConLike # | |
Defined in GHC.Core.ConLike | |
| Uniquable ConLike # | |
Defined in GHC.Core.ConLike | |
| Outputable ConLike # | |
Defined in GHC.Core.ConLike | |
| OutputableBndr ConLike # | |
Defined in GHC.Core.ConLike Methods pprBndr :: BindingSite -> ConLike -> SDoc # pprPrefixOcc :: ConLike -> SDoc # pprInfixOcc :: ConLike -> SDoc # bndrIsJoin_maybe :: ConLike -> Maybe Int # | |
| Eq ConLike # | |
| type Anno ConLike # | |
Defined in GHC.Hs.Pat | |
isVanillaConLike :: ConLike -> Bool #
Is this a 'vanilla' constructor-like thing (no existentials, no provided constraints)?
conLikeArity :: ConLike -> Arity #
Number of arguments
conLikeFieldLabels :: ConLike -> [FieldLabel] #
Names of fields used for selectors
conLikeInstOrigArgTys :: ConLike -> [Type] -> [Scaled Type] #
Returns just the instantiated value argument types of a ConLike,
(excluding dictionary args)
conLikeUserTyVarBinders :: ConLike -> [InvisTVBinder] #
TyVarBinders for the type variables of the ConLike. For pattern
synonyms, this will always consist of the universally quantified variables
followed by the existentially quantified type variables. For data
constructors, the situation is slightly more complicated—see
Note [DataCon user type variable binders] in GHC.Core.DataCon.
conLikeExTyCoVars :: ConLike -> [TyCoVar] #
Existentially quantified type/coercion variables
conLikeName :: ConLike -> Name #
conLikeStupidTheta :: ConLike -> ThetaType #
conLikeImplBangs :: ConLike -> [HsImplBang] #
Returns the strictness information for each constructor
conLikeFullSig :: ConLike -> ([TyVar], [TyCoVar], [EqSpec], ThetaType, ThetaType, [Scaled Type], Type) #
The "full signature" of the ConLike returns, in order:
1) The universally quantified type variables
2) The existentially quantified type/coercion 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 #
Returns the type of the whole pattern
conLikeFieldType :: ConLike -> FieldLabelString -> Type #
Extract the type for any given labelled field of the ConLike
conLikesWithFields :: [ConLike] -> [FieldLabelString] -> [ConLike] #
The ConLikes that have *all* the given fields
conLikeIsInfix :: ConLike -> Bool #
conLikeHasBuilder :: ConLike -> Bool #
conLikeHasBuilder returns True except for
uni-directional pattern synonyms, which have no builder