ghc-9.12.0.20241128: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Rename.Bind

Synopsis

Documentation

rnMatchGroup :: (Outputable (body GhcPs), AnnoBody body) => HsMatchContextRn -> (LocatedA (body GhcPs) -> RnM (LocatedA (body GhcRn), FreeVars)) -> MatchGroup GhcPs (LocatedA (body GhcPs)) -> RnM (MatchGroup GhcRn (LocatedA (body GhcRn)), FreeVars) Source #

rnGRHSs :: AnnoBody body => HsMatchContextRn -> (LocatedA (body GhcPs) -> RnM (LocatedA (body GhcRn), FreeVars)) -> GRHSs GhcPs (LocatedA (body GhcPs)) -> RnM (GRHSs GhcRn (LocatedA (body GhcRn)), FreeVars) Source #

rnGRHS :: AnnoBody body => HsMatchContextRn -> (LocatedA (body GhcPs) -> RnM (LocatedA (body GhcRn), FreeVars)) -> LGRHS GhcPs (LocatedA (body GhcPs)) -> RnM (LGRHS GhcRn (LocatedA (body GhcRn)), FreeVars) Source #

data MiniFixityEnv Source #

Mini fixity env for the names we're about to bind, in a single binding group

It is keyed by the *FastString*, not the *OccName*, because the single fixity decl infix 3 T affects both the data constructor T and the type constructor T

We keep the location so that if we find a duplicate, we can report it sensibly

Fixity declarations may influence names in a single namespace by using a type or data specifier, e.g. in:

 data a :*: b = a :*: b
 infix 3 type :*:

To handle that correctly, MiniFixityEnv contains separate fields for type-level and data-level names. If no namespace specifier is provided, the declaration will populate both the type-level and data-level fields.