+ -- | A label with a baked-in name that definitely comes from the RTS.
+ -- The code for it must compile into libHSrts.a \/ libHSrts.so \/ libHSrts.dll
+ | RtsLabel
+ RtsLabelInfo
+
+ -- | A 'C' (or otherwise foreign) label
+ | ForeignLabel FastString
+ (Maybe Int) -- possible '@n' suffix for stdcall functions
+ -- When generating C, the '@n' suffix is omitted, but when
+ -- generating assembler we must add it to the label.
+ Bool -- True <=> is dynamic
+ FunctionOrData
+
+ -- | A family of labels related to a particular case expression.
+ | CaseLabel