| Safe Haskell | Trustworthy |
|---|---|
| Language | Haskell2010 |
ReWire.HSE.Rename
Synopsis
- data Renamer
- fixFixity :: (MonadFail m, MonadState AstError m) => Renamer -> Module SrcSpanInfo -> m (Module SrcSpanInfo)
- getExports :: ModuleName () -> Renamer -> Exports
- allExports :: Renamer -> Exports
- exclude :: QNamish a => Namespace -> [a] -> Renamer -> Renamer
- extend :: QNamish a => Namespace -> [(a, FQName)] -> Renamer -> Renamer
- finger :: QNamish a => Namespace -> Renamer -> a -> Bool
- rename :: (QNamish a, QNamish b) => Namespace -> Renamer -> a -> b
- data FQName
- qnamish :: (QNamish a, QNamish b) => a -> b
- class QNamish a
- data Namespace
- data Exports
- expValue :: FQName -> Exports -> Exports
- expType :: FQName -> Set FQName -> FQCtorSigs -> Exports -> Exports
- expFixity :: Assoc () -> Int -> Name () -> Exports -> Exports
- expCtorSigs :: Exports -> FQCtorSigs
- getCtors :: QNamish a => a -> Exports -> Set FQName
- type Ctors = Map (Name ()) (Set (Name ()))
- type FQCtors = Map FQName (Set FQName)
- type CtorSigs = Map (Name ()) [(Maybe (Name ()), Type ())]
- type FQCtorSigs = Map FQName [(Maybe FQName, Type ())]
- setCtors :: Ctors -> CtorSigs -> Renamer -> Renamer
- getLocalTypes :: Renamer -> Set (Name ())
- getLocalCtorSigs :: Renamer -> CtorSigs
- lookupCtors :: QNamish a => Renamer -> a -> Set FQName
- lookupCtorSig :: QNamish a => Renamer -> a -> [(Maybe FQName, Type ())]
- lookupCtorSigsForType :: QNamish a => Renamer -> a -> FQCtorSigs
- findCtorSigFromField :: QNamish a => Renamer -> a -> Maybe (FQName, [(Maybe FQName, Type ())])
- toFilePath :: ModuleName a -> FilePath
- fromImps :: (Functor m, MonadError AstError m) => ModuleName () -> Bool -> Exports -> Maybe (ModuleName ()) -> Maybe (ImportSpecList SrcSpanInfo) -> m Renamer
Documentation
Instances
fixFixity :: (MonadFail m, MonadState AstError m) => Renamer -> Module SrcSpanInfo -> m (Module SrcSpanInfo) Source #
getExports :: ModuleName () -> Renamer -> Exports Source #
allExports :: Renamer -> Exports Source #
finger :: QNamish a => Namespace -> Renamer -> a -> Bool Source #
True iff an entry for the name exists in the renamer.
Instances
| Generic FQName Source # | |||||
Defined in ReWire.HSE.Rename Associated Types
| |||||
| Show FQName Source # | |||||
| Eq FQName Source # | |||||
| Ord FQName Source # | |||||
| Hashable FQName Source # | |||||
Defined in ReWire.HSE.Rename | |||||
| QNamish FQName Source # | |||||
Defined in ReWire.HSE.Rename | |||||
| TextShow FQName Source # | |||||
Defined in ReWire.HSE.Rename | |||||
| type Rep FQName Source # | |||||
Defined in ReWire.HSE.Rename type Rep FQName = D1 ('MetaData "FQName" "ReWire.HSE.Rename" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "FQName" 'PrefixI 'True) (S1 ('MetaSel ('Just "mod") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ModuleName ())) :*: S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Name ())))) | |||||
Sometimes-partial conversion between name-like things.
Minimal complete definition
toQNamish, fromQNamish
Instances
| QNamish FQName Source # | |
Defined in ReWire.HSE.Rename | |
| QNamish Text Source # | |
Defined in ReWire.HSE.Rename | |
| QNamish (Name SrcSpanInfo) Source # | |
Defined in ReWire.HSE.Rename | |
| QNamish (Name Annote) Source # | |
Defined in ReWire.HSE.Rename | |
| QNamish (Name ()) Source # | |
Defined in ReWire.HSE.Rename | |
| QNamish (QName Annote) Source # | |
Defined in ReWire.HSE.Rename | |
| QNamish (QName ()) Source # | |
Defined in ReWire.HSE.Rename | |
Instances
| Generic Namespace Source # | |
Defined in ReWire.HSE.Rename | |
| Show Namespace Source # | |
| Eq Namespace Source # | |
| Ord Namespace Source # | |
| Hashable Namespace Source # | |
Defined in ReWire.HSE.Rename | |
| TextShow Namespace Source # | |
| type Rep Namespace Source # | |
Instances
| Monoid Exports Source # | |||||
| Semigroup Exports Source # | |||||
| Generic Exports Source # | |||||
Defined in ReWire.HSE.Rename Associated Types
| |||||
| Show Exports Source # | |||||
| TextShow Exports Source # | |||||
Defined in ReWire.HSE.Rename | |||||
| type Rep Exports Source # | |||||
Defined in ReWire.HSE.Rename type Rep Exports = D1 ('MetaData "Exports" "ReWire.HSE.Rename" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "Exports" 'PrefixI 'True) ((S1 ('MetaSel ('Just "expValues") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set FQName)) :*: S1 ('MetaSel ('Just "expTypes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set FQName))) :*: (S1 ('MetaSel ('Just "expFixities") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set Fixity)) :*: (S1 ('MetaSel ('Just "expCtors") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FQCtors) :*: S1 ('MetaSel ('Just "expCtorSigs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FQCtorSigs))))) | |||||
expCtorSigs :: Exports -> FQCtorSigs Source #
getCtors :: QNamish a => a -> Exports -> Set FQName Source #
Things in the export list of the named thing (ctors or fields).
type Ctors = Map (Name ()) (Set (Name ())) Source #
Map from type name to its set of data constructors. Note: the set of "ctors" also includes fields (things that might appear in an export list).
type FQCtors = Map FQName (Set FQName) Source #
Qualified (globally-unique) version of the above map.
type CtorSigs = Map (Name ()) [(Maybe (Name ()), Type ())] Source #
Map from constructor name to its field "signature," which is a list of field names and types.
type FQCtorSigs = Map FQName [(Maybe FQName, Type ())] Source #
Qualified (globally-unique) version of the above map.
getLocalTypes :: Renamer -> Set (Name ()) Source #
getLocalCtorSigs :: Renamer -> CtorSigs Source #
lookupCtorSigsForType :: QNamish a => Renamer -> a -> FQCtorSigs Source #
findCtorSigFromField :: QNamish a => Renamer -> a -> Maybe (FQName, [(Maybe FQName, Type ())]) Source #
toFilePath :: ModuleName a -> FilePath Source #
fromImps :: (Functor m, MonadError AstError m) => ModuleName () -> Bool -> Exports -> Maybe (ModuleName ()) -> Maybe (ImportSpecList SrcSpanInfo) -> m Renamer Source #
Build renamer from a single import line. Should work on either pre- or post-desugared import lists. Params: module being imported, "qualified", exports (of this import), "... as <qualifier>", imports.