rewire-embedder-2.8: A ReWire-to-Isabelle embedder
Safe HaskellTrustworthy
LanguageHaskell2010

ReWire.HSE.Rename

Synopsis

Documentation

data Renamer Source #

Instances

Instances details
Monoid Renamer Source # 
Instance details

Defined in ReWire.HSE.Rename

Semigroup Renamer Source # 
Instance details

Defined in ReWire.HSE.Rename

Generic Renamer Source # 
Instance details

Defined in ReWire.HSE.Rename

Associated Types

type Rep Renamer 
Instance details

Defined in ReWire.HSE.Rename

type Rep Renamer = D1 ('MetaData "Renamer" "ReWire.HSE.Rename" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "Renamer" 'PrefixI 'True) ((S1 ('MetaSel ('Just "rnNames") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map (Namespace, QName ()) FQName)) :*: S1 ('MetaSel ('Just "rnExports") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map (ModuleName ()) Exports))) :*: (S1 ('MetaSel ('Just "rnFixities") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set Fixity)) :*: (S1 ('MetaSel ('Just "rnCtors") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Ctors) :*: S1 ('MetaSel ('Just "rnCtorSigs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CtorSigs)))))

Methods

from :: Renamer -> Rep Renamer x #

to :: Rep Renamer x -> Renamer #

Show Renamer Source # 
Instance details

Defined in ReWire.HSE.Rename

TextShow Renamer Source # 
Instance details

Defined in ReWire.HSE.Rename

type Rep Renamer Source # 
Instance details

Defined in ReWire.HSE.Rename

type Rep Renamer = D1 ('MetaData "Renamer" "ReWire.HSE.Rename" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "Renamer" 'PrefixI 'True) ((S1 ('MetaSel ('Just "rnNames") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map (Namespace, QName ()) FQName)) :*: S1 ('MetaSel ('Just "rnExports") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map (ModuleName ()) Exports))) :*: (S1 ('MetaSel ('Just "rnFixities") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Set Fixity)) :*: (S1 ('MetaSel ('Just "rnCtors") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Ctors) :*: S1 ('MetaSel ('Just "rnCtorSigs") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CtorSigs)))))

fixFixity :: (MonadFail m, MonadState AstError m) => Renamer -> Module SrcSpanInfo -> m (Module SrcSpanInfo) Source #

getExports :: ModuleName () -> Renamer -> Exports Source #

finger :: QNamish a => Namespace -> Renamer -> a -> Bool Source #

True iff an entry for the name exists in the renamer.

rename :: (QNamish a, QNamish b) => Namespace -> Renamer -> a -> b Source #

data FQName Source #

Instances

Instances details
Generic FQName Source # 
Instance details

Defined in ReWire.HSE.Rename

Associated Types

type Rep FQName 
Instance details

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 ()))))

Methods

from :: FQName -> Rep FQName x #

to :: Rep FQName x -> FQName #

Show FQName Source # 
Instance details

Defined in ReWire.HSE.Rename

Eq FQName Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

(==) :: FQName -> FQName -> Bool #

(/=) :: FQName -> FQName -> Bool #

Ord FQName Source # 
Instance details

Defined in ReWire.HSE.Rename

Hashable FQName Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

hashWithSalt :: Int -> FQName -> Int

hash :: FQName -> Int

QNamish FQName Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

toQNamish :: FQName -> QName ()

fromQNamish :: QName l -> FQName

TextShow FQName Source # 
Instance details

Defined in ReWire.HSE.Rename

type Rep FQName Source # 
Instance details

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 ()))))

qnamish :: (QNamish a, QNamish b) => a -> b Source #

class QNamish a Source #

Sometimes-partial conversion between name-like things.

Minimal complete definition

toQNamish, fromQNamish

Instances

Instances details
QNamish FQName Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

toQNamish :: FQName -> QName ()

fromQNamish :: QName l -> FQName

QNamish Text Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

toQNamish :: Text -> QName ()

fromQNamish :: QName l -> Text

QNamish (Name SrcSpanInfo) Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

toQNamish :: Name SrcSpanInfo -> QName ()

fromQNamish :: QName l -> Name SrcSpanInfo

QNamish (Name Annote) Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

toQNamish :: Name Annote -> QName ()

fromQNamish :: QName l -> Name Annote

QNamish (Name ()) Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

toQNamish :: Name () -> QName ()

fromQNamish :: QName l -> Name ()

QNamish (QName Annote) Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

toQNamish :: QName Annote -> QName ()

fromQNamish :: QName l -> QName Annote

QNamish (QName ()) Source # 
Instance details

Defined in ReWire.HSE.Rename

Methods

toQNamish :: QName () -> QName ()

fromQNamish :: QName l -> QName ()

data Namespace Source #

Constructors

Type 
Value 

Instances

Instances details
Generic Namespace Source # 
Instance details

Defined in ReWire.HSE.Rename

Associated Types

type Rep Namespace 
Instance details

Defined in ReWire.HSE.Rename

type Rep Namespace = D1 ('MetaData "Namespace" "ReWire.HSE.Rename" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "Type" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Value" 'PrefixI 'False) (U1 :: Type -> Type))
Show Namespace Source # 
Instance details

Defined in ReWire.HSE.Rename

Eq Namespace Source # 
Instance details

Defined in ReWire.HSE.Rename

Ord Namespace Source # 
Instance details

Defined in ReWire.HSE.Rename

Hashable Namespace Source # 
Instance details

Defined in ReWire.HSE.Rename

TextShow Namespace Source # 
Instance details

Defined in ReWire.HSE.Rename

type Rep Namespace Source # 
Instance details

Defined in ReWire.HSE.Rename

type Rep Namespace = D1 ('MetaData "Namespace" "ReWire.HSE.Rename" "rewire-embedder-2.8-G94ytt72LAgDf9UAeQPb84" 'False) (C1 ('MetaCons "Type" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Value" 'PrefixI 'False) (U1 :: Type -> Type))

data Exports Source #

Instances

Instances details
Monoid Exports Source # 
Instance details

Defined in ReWire.HSE.Rename

Semigroup Exports Source # 
Instance details

Defined in ReWire.HSE.Rename

Generic Exports Source # 
Instance details

Defined in ReWire.HSE.Rename

Associated Types

type Rep Exports 
Instance details

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)))))

Methods

from :: Exports -> Rep Exports x #

to :: Rep Exports x -> Exports #

Show Exports Source # 
Instance details

Defined in ReWire.HSE.Rename

TextShow Exports Source # 
Instance details

Defined in ReWire.HSE.Rename

type Rep Exports Source # 
Instance details

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)))))

expFixity :: Assoc () -> Int -> Name () -> Exports -> Exports 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 #

lookupCtorSig :: QNamish a => Renamer -> a -> [(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.