Identifier Details
The IdDetails of an Id give stable, and necessary,
information about the Id.
Constructors
VanillaIdRecSelIdThe
Idfor a record selectorsel_tycon :: RecSelParentsel_fieldLabel :: FieldLabelsel_naughty :: Boolsel_cons :: ([ConLike], [ConLike])
DataConWorkId DataConThe
Idis for a data constructor workerDataConWrapId DataConThe
Idis for a data constructor wrapperClassOpId Class BoolThe
Idis a superclass selector or class operationRepPolyIdA representation-polymorphic pseudo-op.
id_concrete_tvs :: ConcreteTyVarsWhich type variables of this representation-polymorphic 'Id should be instantiated to concrete type variables?
See Note [Representation-polymorphism checking built-ins] in GHC.Tc.Gen.Head.
PrimOpIdThe
Idis for a primitive operator.id_primop :: PrimOpid_concrete_tvs :: ConcreteTyVarsWhich type variables of this representation-polymorphic 'Id should be instantiated to concrete type variables?
See Note [Representation-polymorphism checking built-ins] in GHC.Tc.Gen.Head.
FCallId ForeignCallThe
Idis for a foreign call. Type will be simple: no type families, newtypes, etcTickBoxOpId TickBoxOpThe
Idis for a HPC tick box (both traditional and binary)DFunId BoolA dictionary function. Bool = True = the class has only one method, so may be implemented with a newtype, so it might be bad to be strict on this dictionary
CoVarIdA coercion variable This only covers un-lifted coercions, of type (t1 ~# t2) or (t1 ~R# t2), not their lifted variants
JoinId JoinArity (Maybe [CbvMark])WorkerLikeId [CbvMark]An
Idfor a worker like function, which might expect some arguments to be passed both evaluated and tagged. Worker like functions are create by W/W and SpecConstr and we can expect that they aren't used unapplied. See Note [CBV Function Ids] See Note [Tag Inference] The [CbvMark] is always empty (and ignored) until after Tidy for ids from the current module.
Instances1Outputable
Outputable IdDetailsDefined in ghc-9.10.3 · GHC.Types.Id.Info