cryptol-3.5.0: Cryptol: The Language of Cryptography
Copyright(c) 2015-2016 Galois Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Cryptol.Parser.Name

Description

 
Synopsis

Documentation

data NameSource Source #

Constructors

SystemName 
UserName 

Instances

Instances details
Generic NameSource Source # 
Instance details

Defined in Cryptol.Parser.Name

Associated Types

type Rep NameSource 
Instance details

Defined in Cryptol.Parser.Name

type Rep NameSource = D1 ('MetaData "NameSource" "Cryptol.Parser.Name" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "SystemName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UserName" 'PrefixI 'False) (U1 :: Type -> Type))
Show NameSource Source # 
Instance details

Defined in Cryptol.Parser.Name

NFData NameSource Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

rnf :: NameSource -> () #

Eq NameSource Source # 
Instance details

Defined in Cryptol.Parser.Name

Ord NameSource Source # 
Instance details

Defined in Cryptol.Parser.Name

type Rep NameSource Source # 
Instance details

Defined in Cryptol.Parser.Name

type Rep NameSource = D1 ('MetaData "NameSource" "Cryptol.Parser.Name" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "SystemName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UserName" 'PrefixI 'False) (U1 :: Type -> Type))

data PName Source #

Names that originate in the parser. Note here that other kinds of PName do not need this kind of flag because: (1) NewName are generated by the system, so these should never be user visible. (2) Qual names are user names use to refer to imported modules. Should these names names ever be used to refer to system names, then there make be a bug in the renamer that needs to be fixed.

Constructors

UnQual' !Ident !NameSource

Unqualified names like x, Foo, or +.

Qual !ModName !Ident

Qualified names like Foo::bar or module::!.

NewName !Pass !Int

Fresh names generated by a pass.

Instances

Instances details
Generic PName Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

from :: PName -> Rep PName x #

to :: Rep PName x -> PName #

Show PName Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

showsPrec :: Int -> PName -> ShowS #

show :: PName -> String #

showList :: [PName] -> ShowS #

PP PName Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

ppPrec :: Int -> PName -> Doc Source #

ppPrecWithAnnot :: [([Int], PPAnnot)] -> Int -> PName -> Doc Source #

PPName PName Source # 
Instance details

Defined in Cryptol.Parser.Name

NFData PName Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

rnf :: PName -> () #

Eq PName Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

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

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

Ord PName Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

compare :: PName -> PName -> Ordering #

(<) :: PName -> PName -> Bool #

(<=) :: PName -> PName -> Bool #

(>) :: PName -> PName -> Bool #

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

max :: PName -> PName -> PName #

min :: PName -> PName -> PName #

BindsNames (InModule (Bind PName)) Source #

Introduce the name

Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (Bind PName) -> BuildNamingEnv

BindsNames (InModule (Decl PName)) Source #

The naming environment for a single declaration.

Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (Decl PName) -> BuildNamingEnv

BindsNames (InModule (EnumDecl PName)) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (EnumDecl PName) -> BuildNamingEnv

BindsNames (InModule (NestedModule PName)) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (NestedModule PName) -> BuildNamingEnv

BindsNames (InModule (Newtype PName)) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (Newtype PName) -> BuildNamingEnv

BindsNames (InModule (ParameterFun PName)) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (ParameterFun PName) -> BuildNamingEnv

BindsNames (InModule (ParameterType PName)) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (ParameterType PName) -> BuildNamingEnv

BindsNames (InModule (PrimType PName)) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (PrimType PName) -> BuildNamingEnv

BindsNames (InModule (SigDecl PName)) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (SigDecl PName) -> BuildNamingEnv

BindsNames (InModule (TopDecl PName)) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: InModule (TopDecl PName) -> BuildNamingEnv

BindsNames (Pattern PName) Source # 
Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: Pattern PName -> BuildNamingEnv

BindsNames (Schema PName) Source #

Generate a type renaming environment from the parameters that are bound by this schema.

Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: Schema PName -> BuildNamingEnv

BindsNames (TParam PName) Source #

Generate the naming environment for a type parameter.

Instance details

Defined in Cryptol.ModuleSystem.Binds

Methods

namingEnv :: TParam PName -> BuildNamingEnv

RemovePatterns (Expr PName) Source # 
Instance details

Defined in Cryptol.Parser.NoPat

RemovePatterns (NestedModule PName) Source # 
Instance details

Defined in Cryptol.Parser.NoPat

RemovePatterns (Program PName) Source # 
Instance details

Defined in Cryptol.Parser.NoPat

RemovePatterns [Decl PName] Source # 
Instance details

Defined in Cryptol.Parser.NoPat

RemovePatterns (ModuleG mname PName) Source # 
Instance details

Defined in Cryptol.Parser.NoPat

Methods

removePatterns :: ModuleG mname PName -> (ModuleG mname PName, [Error]) Source #

type Rep PName Source # 
Instance details

Defined in Cryptol.Parser.Name

data Pass Source #

Passes that can generate fresh names.

Instances

Instances details
Generic Pass Source # 
Instance details

Defined in Cryptol.Parser.Name

Associated Types

type Rep Pass 
Instance details

Defined in Cryptol.Parser.Name

type Rep Pass = D1 ('MetaData "Pass" "Cryptol.Parser.Name" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "NoPat" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MonoValues" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExpandPropGuards" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))

Methods

from :: Pass -> Rep Pass x #

to :: Rep Pass x -> Pass #

Show Pass Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

showsPrec :: Int -> Pass -> ShowS #

show :: Pass -> String #

showList :: [Pass] -> ShowS #

NFData Pass Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

rnf :: Pass -> () #

Eq Pass Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

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

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

Ord Pass Source # 
Instance details

Defined in Cryptol.Parser.Name

Methods

compare :: Pass -> Pass -> Ordering #

(<) :: Pass -> Pass -> Bool #

(<=) :: Pass -> Pass -> Bool #

(>) :: Pass -> Pass -> Bool #

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

max :: Pass -> Pass -> Pass #

min :: Pass -> Pass -> Pass #

type Rep Pass Source # 
Instance details

Defined in Cryptol.Parser.Name

type Rep Pass = D1 ('MetaData "Pass" "Cryptol.Parser.Name" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "NoPat" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MonoValues" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExpandPropGuards" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))))

origNameToDefPName :: OrigName -> NameSource -> PName Source #

Compute a PName for the definition site corresponding to the given OrigName. Usually this is an unqualified name, but names that come from module parameters are qualified with the corresponding parameter name.

pattern UnQual :: Ident -> PName Source #

Pattern synonym for when we are trying to deconstruct unqualified PNames to get their identifiers.