Identifier Details
The IdDetails of an Id give stable, and necessary,
information about the Id.
Constructors
VanillaIdRecSelIdThe
Idfor a record selectorDataConWorkId 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.Utils.Concrete.
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.Utils.Concrete.
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 = a dictionary of this class cannot be bottom See Note [NON-BOTTOM-DICTS invariant] in GHC.Core
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: overview] See Note [EPT enforcement] Invariants: - the [CbvMark] is always empty (and ignored) until after Tidy for ids from the current module - If non-empty, at least is isMarkedCbbv; see (CBV2)
Instances1Outputable
Outputable IdDetailsDefined in ghc-10.0.0.20260917 · GHC.Types.Id.Info