| Copyright | (c) 2013-2016 Galois Inc. |
|---|---|
| License | BSD3 |
| Maintainer | cryptol@galois.com |
| Stability | provisional |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Cryptol.TypeCheck.AST
Description
Synopsis
- type Module = ModuleG ModName
- data ModuleG mname = Module {
- mName :: !mname
- mDoc :: ![Text]
- mExports :: ExportSpec Name
- mParamTypes :: Map Name ModTParam
- mParamFuns :: Map Name ModVParam
- mParamConstraints :: [Located Prop]
- mParams :: FunctorParams
- mFunctors :: Map Name (ModuleG Name)
- mNested :: !(Set Name)
- mTySyns :: Map Name TySyn
- mNominalTypes :: Map Name NominalType
- mDecls :: [DeclGroup]
- mSubmodules :: Map Name Submodule
- mSignatures :: !(Map Name ModParamNames)
- mInScope :: NamingEnv
- data Match
- data Expr
- = EList [Expr] Type
- | ETuple [Expr]
- | ERec (RecordMap Ident Expr)
- | ESel Expr Selector
- | ESet Type Expr Selector Expr
- | EIf Expr Expr Expr
- | ECase Expr (Map Ident CaseAlt) (Maybe CaseAlt)
- | EComp Type Type Expr [[Match]]
- | EVar Name
- | ETAbs TParam Expr
- | ETApp Expr Type
- | EApp Expr Expr
- | EAbs Name Type Expr
- | ELocated Range Expr
- | EProofAbs Prop Expr
- | EProofApp Expr
- | EWhere Expr [DeclGroup]
- | EPropGuards [([Prop], Expr)] Type
- data Decl = Decl {}
- data CaseAlt = CaseAlt [(Name, Type)] Expr
- data FFI
- = CallC (FFIFunType FFIType)
- | CallAbstract (FFIFunType Type)
- data Submodule = Submodule {}
- groupDecls :: DeclGroup -> [Decl]
- splitTApp :: Expr -> Maybe (Type, Expr)
- data DeclGroup
- = Recursive [Decl]
- | NonRecursive Decl
- findForeignDecls :: ModuleG mname -> [(Name, FFI)]
- splitApp :: Expr -> Maybe (Expr, Expr)
- data DeclDef
- data TCTopEntity
- tcTopEntitytName :: TCTopEntity -> ModName
- tcTopEntityToModule :: TCTopEntity -> Module
- emptyModule :: mname -> ModuleG mname
- findForeignDeclsInFunctors :: ModuleG mname -> [Name]
- isParametrizedModule :: ModuleG mname -> Bool
- ePrim :: PrimMap -> PrimIdent -> Expr
- eError :: PrimMap -> Type -> String -> Expr
- eString :: PrimMap -> String -> Expr
- eChar :: PrimMap -> Char -> Expr
- eNumber :: PrimMap -> Integer -> Type -> Expr
- ePropGuards :: [([Prop], Expr)] -> Type -> Expr
- splitWhile :: (a -> Maybe (b, a)) -> a -> ([b], a)
- splitAbs :: Expr -> Maybe ((Name, Type), Expr)
- ppLam :: NameMap -> Int -> [TParam] -> [Prop] -> [(Name, Type)] -> Expr -> Doc
- splitProofAbs :: Expr -> Maybe (Prop, Expr)
- splitTAbs :: Expr -> Maybe (TParam, Expr)
- splitLoc :: Expr -> Maybe (Range, Expr)
- dropLocs :: Expr -> Expr
- splitProofApp :: Expr -> Maybe ((), Expr)
- splitExprInst :: Expr -> (Expr, [Type], Int)
- data Name
- data TFun
- data Selector
- type Import = ImportG ModName
- data ImportG mname = Import {}
- data ImpName name
- data ImportSpec
- data ExportType
- newtype ExportSpec name = ExportSpec (Map Namespace (Set name))
- isExportedBind :: Ord name => name -> ExportSpec name -> Bool
- isExportedType :: Ord name => name -> ExportSpec name -> Bool
- isExported :: Ord name => Namespace -> name -> ExportSpec name -> Bool
- data Pragma
- data Fixity = Fixity {}
- data PrimMap = PrimMap {}
- module Cryptol.TypeCheck.Type
- data FFI
- = CallC (FFIFunType FFIType)
- | CallAbstract (FFIFunType Type)
Documentation
A Cryptol module.
Constructors
| Module | |
Fields
| |
Instances
Constructors
| From Name Type Type Expr | Type arguments are the length and element type of the sequence expression |
| Let Decl |
Instances
| Generic Match Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show Match Source # | |||||
| Defs Match Source # | |||||
| FreeVars Match Source # | |||||
| TraverseNames Match Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => Match -> f Match Source # | |||||
| ShowParseable Match Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| TVars Match Source # | |||||
| PP Match Source # | |||||
| NFData Match Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| PP (WithNames Match) Source # | |||||
| type Rep Match Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep Match = D1 ('MetaData "Match" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "From" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: C1 ('MetaCons "Let" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Decl))) | |||||
Constructors
| EList [Expr] Type | List value (with type of elements) |
| ETuple [Expr] | Tuple value |
| ERec (RecordMap Ident Expr) | Record value |
| ESel Expr Selector | Elimination for tuplerecordlist |
| ESet Type Expr Selector Expr | Change the value of a field. The included type gives the type of the record being updated |
| EIf Expr Expr Expr | If-then-else |
| ECase Expr (Map Ident CaseAlt) (Maybe CaseAlt) | Case expression. The keys are the name of constructors
|
| EComp Type Type Expr [[Match]] | List comprehensions The types cache the length of the sequence and its element type. |
| EVar Name | Use of a bound variable |
| ETAbs TParam Expr | Function Value |
| ETApp Expr Type | Type application |
| EApp Expr Expr | Function application |
| EAbs Name Type Expr | Function value |
| ELocated Range Expr | Source location information |
| EProofAbs Prop Expr | Proof abstraction. Because we don't keep proofs around
we don't need to name the assumption, but we still need to
record the assumption. The assumption is the |
| EProofApp Expr | If We don't record the actual proofs, as they are not used for anything. It may be nice to keep them around for sanity checking. |
| EWhere Expr [DeclGroup] | |
| EPropGuards [([Prop], Expr)] Type | Use |
Instances
| Generic Expr Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show Expr Source # | |||||
| FreeVars Expr Source # | |||||
| TraverseNames Expr Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => Expr -> f Expr Source # | |||||
| HasLoc Expr Source # | |||||
| ShowParseable Expr Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| TVars Expr Source # | |||||
| PP Expr Source # | |||||
| NFData Expr Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| PP (WithNames Expr) Source # | |||||
| type Rep Expr Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep Expr = D1 ('MetaData "Expr" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) ((((C1 ('MetaCons "EList" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Expr]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "ETuple" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Expr]))) :+: (C1 ('MetaCons "ERec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RecordMap Ident Expr))) :+: C1 ('MetaCons "ESel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Selector)))) :+: ((C1 ('MetaCons "ESet" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Selector) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: C1 ('MetaCons "EIf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)))) :+: (C1 ('MetaCons "ECase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Ident CaseAlt)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe CaseAlt)))) :+: (C1 ('MetaCons "EComp" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[Match]]))) :+: C1 ('MetaCons "EVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))))) :+: (((C1 ('MetaCons "ETAbs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TParam) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "ETApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "EApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "EAbs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))))) :+: ((C1 ('MetaCons "ELocated" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Range) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "EProofAbs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Prop) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: (C1 ('MetaCons "EProofApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: (C1 ('MetaCons "EWhere" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DeclGroup])) :+: C1 ('MetaCons "EPropGuards" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [([Prop], Expr)]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))))) | |||||
Constructors
| Decl | |
Instances
| Generic Decl Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show Decl Source # | |||||
| Defs Decl Source # | |||||
| FreeVars Decl Source # | |||||
| TraverseNames Decl Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => Decl -> f Decl Source # | |||||
| ModuleInstance Decl Source # | |||||
Defined in Cryptol.TypeCheck.ModuleInstance Methods moduleInstance :: Decl -> Decl Source # | |||||
| ShowParseable Decl Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| TVars Decl Source # | |||||
| PP Decl Source # | |||||
| NFData Decl Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| PP (WithNames Decl) Source # | |||||
| type Rep Decl Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep Decl = D1 ('MetaData "Decl" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "Decl" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: (S1 ('MetaSel ('Just "dSignature") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Schema) :*: S1 ('MetaSel ('Just "dDefinition") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DeclDef))) :*: ((S1 ('MetaSel ('Just "dPragmas") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pragma]) :*: S1 ('MetaSel ('Just "dInfix") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "dFixity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Fixity)) :*: S1 ('MetaSel ('Just "dDoc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)))))) | |||||
Used for case expressions. Similar to a lambda, the variables are bound by the value examined in the case.
Instances
| Generic CaseAlt Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show CaseAlt Source # | |||||
| FreeVars CaseAlt Source # | |||||
| TraverseNames CaseAlt Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => CaseAlt -> f CaseAlt Source # | |||||
| ShowParseable CaseAlt Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| TVars CaseAlt Source # | |||||
| PP CaseAlt Source # | |||||
| NFData CaseAlt Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| type Rep CaseAlt Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep CaseAlt = D1 ('MetaData "CaseAlt" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "CaseAlt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Name, Type)]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) | |||||
Constructors
| CallC (FFIFunType FFIType) | |
| CallAbstract (FFIFunType Type) |
Instances
| Generic FFI Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show FFI Source # | |||||
| FreeVars FFI Source # | |||||
| TraverseNames FFI Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => FFI -> f FFI Source # | |||||
| ShowParseable FFI Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| NFData FFI Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| type Rep FFI Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep FFI = D1 ('MetaData "FFI" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "CallC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FFIFunType FFIType))) :+: C1 ('MetaCons "CallAbstract" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FFIFunType Type)))) | |||||
Instances
| Generic Submodule Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show Submodule Source # | |||||
| ModuleInstance Submodule Source # | |||||
Defined in Cryptol.TypeCheck.ModuleInstance Methods moduleInstance :: Submodule -> Submodule Source # | |||||
| NFData Submodule Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| type Rep Submodule Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep Submodule = D1 ('MetaData "Submodule" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "Submodule" 'PrefixI 'True) (S1 ('MetaSel ('Just "smIface") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (IfaceNames Name)) :*: S1 ('MetaSel ('Just "smInScope") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NamingEnv))) | |||||
groupDecls :: DeclGroup -> [Decl] Source #
Constructors
| Recursive [Decl] | Mutually recursive declarations |
| NonRecursive Decl | Non-recursive declaration |
Instances
| Generic DeclGroup Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show DeclGroup Source # | |||||
| Defs DeclGroup Source # | |||||
| FreeVars DeclGroup Source # | |||||
| TraverseNames DeclGroup Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => DeclGroup -> f DeclGroup Source # | |||||
| ModuleInstance DeclGroup Source # | |||||
Defined in Cryptol.TypeCheck.ModuleInstance Methods moduleInstance :: DeclGroup -> DeclGroup Source # | |||||
| ShowParseable DeclGroup Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| TVars DeclGroup Source # | |||||
| PP DeclGroup Source # | |||||
| NFData DeclGroup Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| PP (WithNames DeclGroup) Source # | |||||
| type Rep DeclGroup Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep DeclGroup = D1 ('MetaData "DeclGroup" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "Recursive" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Decl])) :+: C1 ('MetaCons "NonRecursive" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Decl))) | |||||
findForeignDecls :: ModuleG mname -> [(Name, FFI)] Source #
Find all the foreign declarations in the module and return their names and FFIFunTypes.
Constructors
| DPrim | |
| DForeign FFI (Maybe Expr) | Foreign functions can have an optional cryptol implementation |
| DExpr Expr |
Instances
| Generic DeclDef Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show DeclDef Source # | |||||
| FreeVars DeclDef Source # | |||||
| TraverseNames DeclDef Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => DeclDef -> f DeclDef Source # | |||||
| ShowParseable DeclDef Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| TVars DeclDef Source # | |||||
| NFData DeclDef Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| PP (WithNames DeclDef) Source # | |||||
| type Rep DeclDef Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep DeclDef = D1 ('MetaData "DeclDef" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "DPrim" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DForeign" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FFI) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Expr))) :+: C1 ('MetaCons "DExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)))) | |||||
data TCTopEntity Source #
Constructors
| TCTopModule (ModuleG ModName) | |
| TCTopSignature ModName ModParamNames |
Instances
| Generic TCTopEntity Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show TCTopEntity Source # | |||||
Defined in Cryptol.TypeCheck.AST Methods showsPrec :: Int -> TCTopEntity -> ShowS # show :: TCTopEntity -> String # showList :: [TCTopEntity] -> ShowS # | |||||
| TVars TCTopEntity Source # | |||||
Defined in Cryptol.TypeCheck.Subst Methods apSubst :: Subst -> TCTopEntity -> TCTopEntity Source # | |||||
| PP TCTopEntity Source # | |||||
Defined in Cryptol.TypeCheck.AST Methods ppPrec :: Int -> TCTopEntity -> Doc Source # ppPrecWithAnnot :: [([Int], PPAnnot)] -> Int -> TCTopEntity -> Doc Source # | |||||
| NFData TCTopEntity Source # | |||||
Defined in Cryptol.TypeCheck.AST Methods rnf :: TCTopEntity -> () # | |||||
| PP (WithNames TCTopEntity) Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| type Rep TCTopEntity Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep TCTopEntity = D1 ('MetaData "TCTopEntity" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "TCTopModule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ModuleG ModName))) :+: C1 ('MetaCons "TCTopSignature" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModParamNames))) | |||||
tcTopEntityToModule :: TCTopEntity -> Module Source #
Panics if the entity is not a module
emptyModule :: mname -> ModuleG mname Source #
findForeignDeclsInFunctors :: ModuleG mname -> [Name] Source #
Find all the foreign declarations that are in functors, including in the top-level module itself if it is a functor. This is used to report an error
isParametrizedModule :: ModuleG mname -> Bool Source #
Is this a parameterized module?
ePrim :: PrimMap -> PrimIdent -> Expr Source #
Construct a primitive, given a map to the unique primitive name.
eError :: PrimMap -> Type -> String -> Expr Source #
Make an expression that is error pre-applied to a type and a message.
ePropGuards :: [([Prop], Expr)] -> Type -> Expr Source #
Construct a prop guard expression simplifying trivial cases.
splitWhile :: (a -> Maybe (b, a)) -> a -> ([b], a) Source #
splitExprInst :: Expr -> (Expr, [Type], Int) Source #
Deconstruct an expression, typically polymorphic, into the types and proofs to which it is applied. Since we don't store the proofs, we just return the number of proof applications. The first type is the one closest to the expr.
Instances
| Generic Name Source # | |||||
Defined in Cryptol.ModuleSystem.Name Associated Types
| |||||
| Show Name Source # | |||||
| TraverseNames Name Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => Name -> f Name Source # | |||||
| ModuleInstance Name Source # | |||||
Defined in Cryptol.TypeCheck.ModuleInstance Methods moduleInstance :: Name -> Name Source # | |||||
| ShowParseable Name Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| PP Name Source # | |||||
| PPName Name Source # | |||||
Defined in Cryptol.ModuleSystem.Name | |||||
| NFData Name Source # | |||||
Defined in Cryptol.ModuleSystem.Name | |||||
| Eq Name Source # | |||||
| Ord Name Source # | |||||
| type Rep Name Source # | |||||
Defined in Cryptol.ModuleSystem.Name type Rep Name = D1 ('MetaData "Name" "Cryptol.ModuleSystem.Name" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "Name" 'PrefixI 'True) ((S1 ('MetaSel ('Just "nUnique") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "nInfo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NameInfo)) :*: (S1 ('MetaSel ('Just "nFixity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Fixity)) :*: S1 ('MetaSel ('Just "nLoc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Range)))) | |||||
Built-in type functions.
If you add additional user-visible constructors,
please update primTys in Cryptol.Prims.Types.
Constructors
| TCAdd | : Num -> Num -> Num |
| TCSub | : Num -> Num -> Num |
| TCMul | : Num -> Num -> Num |
| TCDiv | : Num -> Num -> Num |
| TCMod | : Num -> Num -> Num |
| TCExp | : Num -> Num -> Num |
| TCWidth | : Num -> Num |
| TCMin | : Num -> Num -> Num |
| TCMax | : Num -> Num -> Num |
| TCCeilDiv | : Num -> Num -> Num |
| TCCeilMod | : Num -> Num -> Num |
| TCLenFromThenTo |
|
Instances
| Bounded TFun Source # | |||||
| Enum TFun Source # | |||||
| Generic TFun Source # | |||||
Defined in Cryptol.TypeCheck.TCon Associated Types
| |||||
| Show TFun Source # | |||||
| HasKind TFun Source # | |||||
| PP TFun Source # | |||||
| NFData TFun Source # | |||||
Defined in Cryptol.TypeCheck.TCon | |||||
| Eq TFun Source # | |||||
| Ord TFun Source # | |||||
| type Rep TFun Source # | |||||
Defined in Cryptol.TypeCheck.TCon type Rep TFun = D1 ('MetaData "TFun" "Cryptol.TypeCheck.TCon" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (((C1 ('MetaCons "TCAdd" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TCSub" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TCMul" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "TCDiv" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TCMod" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TCExp" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "TCWidth" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TCMin" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TCMax" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "TCCeilDiv" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TCCeilMod" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TCLenFromThenTo" 'PrefixI 'False) (U1 :: Type -> Type))))) | |||||
Selectors are used for projecting from various components. Each selector has an option spec to specify the shape of the thing that is being selected. Currently, there is no surface syntax for list selectors, but they are used during the desugaring of patterns.
Constructors
| TupleSel Int (Maybe Int) | Zero-based tuple selection. Optionally specifies the shape of the tuple (one-based). |
| RecordSel Ident (Maybe [Ident]) | Record selection. Optionally specifies the shape of the record. |
| ListSel Int (Maybe Int) | List selection. Optionally specifies the length of the list. |
Instances
| Generic Selector Source # | |||||
Defined in Cryptol.Parser.Selector Associated Types
| |||||
| Show Selector Source # | |||||
| ShowParseable Selector Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| PP Selector Source # | |||||
| NFData Selector Source # | |||||
Defined in Cryptol.Parser.Selector | |||||
| Eq Selector Source # | |||||
| Ord Selector Source # | |||||
Defined in Cryptol.Parser.Selector | |||||
| type Rep Selector Source # | |||||
Defined in Cryptol.Parser.Selector type Rep Selector = D1 ('MetaData "Selector" "Cryptol.Parser.Selector" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "TupleSel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))) :+: (C1 ('MetaCons "RecordSel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [Ident]))) :+: C1 ('MetaCons "ListSel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))))) | |||||
An import declaration.
Constructors
| Import | |
Instances
| Generic (ImportG mname) Source # | |||||
Defined in Cryptol.Parser.AST Associated Types
| |||||
| Show mname => Show (ImportG mname) Source # | |||||
| PP mname => PP (ImportG mname) Source # | |||||
| NFData mname => NFData (ImportG mname) Source # | |||||
Defined in Cryptol.Parser.AST | |||||
| type Rep (ImportG mname) Source # | |||||
Defined in Cryptol.Parser.AST type Rep (ImportG mname) = D1 ('MetaData "ImportG" "Cryptol.Parser.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "Import" 'PrefixI 'True) ((S1 ('MetaSel ('Just "iModule") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Located mname)) :*: S1 ('MetaSel ('Just "iAs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName))) :*: (S1 ('MetaSel ('Just "iSpec") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ImportSpec)) :*: (S1 ('MetaSel ('Just "iInst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe (ModuleInstanceArgs PName))) :*: S1 ('MetaSel ('Just "iDoc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Located Text))))))) | |||||
The name of an imported module
Instances
| Rename ImpName Source # | |||||
| Generic (ImpName name) Source # | |||||
Defined in Cryptol.Parser.AST Associated Types
| |||||
| Show name => Show (ImpName name) Source # | |||||
| ModuleInstance name => ModuleInstance (ImpName name) Source # | |||||
Defined in Cryptol.TypeCheck.ModuleInstance Methods moduleInstance :: ImpName name -> ImpName name Source # | |||||
| PP name => PP (ImpName name) Source # | |||||
| NFData name => NFData (ImpName name) Source # | |||||
Defined in Cryptol.Parser.AST | |||||
| Eq name => Eq (ImpName name) Source # | |||||
| Ord name => Ord (ImpName name) Source # | |||||
Defined in Cryptol.Parser.AST | |||||
| type Rep (ImpName name) Source # | |||||
Defined in Cryptol.Parser.AST type Rep (ImpName name) = D1 ('MetaData "ImpName" "Cryptol.Parser.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "ImpTop" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName)) :+: C1 ('MetaCons "ImpNested" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 name))) | |||||
data ImportSpec Source #
The list of names following an import.
Instances
| Generic ImportSpec Source # | |||||
Defined in Cryptol.Parser.AST Associated Types
| |||||
| Show ImportSpec Source # | |||||
Defined in Cryptol.Parser.AST Methods showsPrec :: Int -> ImportSpec -> ShowS # show :: ImportSpec -> String # showList :: [ImportSpec] -> ShowS # | |||||
| PP ImportSpec Source # | |||||
Defined in Cryptol.Parser.AST Methods ppPrec :: Int -> ImportSpec -> Doc Source # ppPrecWithAnnot :: [([Int], PPAnnot)] -> Int -> ImportSpec -> Doc Source # | |||||
| NFData ImportSpec Source # | |||||
Defined in Cryptol.Parser.AST Methods rnf :: ImportSpec -> () # | |||||
| Eq ImportSpec Source # | |||||
Defined in Cryptol.Parser.AST | |||||
| type Rep ImportSpec Source # | |||||
Defined in Cryptol.Parser.AST type Rep ImportSpec = D1 ('MetaData "ImportSpec" "Cryptol.Parser.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "Hiding" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Ident])) :+: C1 ('MetaCons "Only" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Ident]))) | |||||
data ExportType Source #
Export information for a declaration.
Instances
| Generic ExportType Source # | |||||
Defined in Cryptol.Parser.AST Associated Types
| |||||
| Show ExportType Source # | |||||
Defined in Cryptol.Parser.AST Methods showsPrec :: Int -> ExportType -> ShowS # show :: ExportType -> String # showList :: [ExportType] -> ShowS # | |||||
| NFData ExportType Source # | |||||
Defined in Cryptol.Parser.AST Methods rnf :: ExportType -> () # | |||||
| Eq ExportType Source # | |||||
Defined in Cryptol.Parser.AST | |||||
| Ord ExportType Source # | |||||
Defined in Cryptol.Parser.AST Methods compare :: ExportType -> ExportType -> Ordering # (<) :: ExportType -> ExportType -> Bool # (<=) :: ExportType -> ExportType -> Bool # (>) :: ExportType -> ExportType -> Bool # (>=) :: ExportType -> ExportType -> Bool # max :: ExportType -> ExportType -> ExportType # min :: ExportType -> ExportType -> ExportType # | |||||
| type Rep ExportType Source # | |||||
newtype ExportSpec name Source #
Constructors
| ExportSpec (Map Namespace (Set name)) |
Instances
| Ord name => Monoid (ExportSpec name) Source # | |||||
Defined in Cryptol.ModuleSystem.Exports Methods mempty :: ExportSpec name # mappend :: ExportSpec name -> ExportSpec name -> ExportSpec name # mconcat :: [ExportSpec name] -> ExportSpec name # | |||||
| Ord name => Semigroup (ExportSpec name) Source # | |||||
Defined in Cryptol.ModuleSystem.Exports Methods (<>) :: ExportSpec name -> ExportSpec name -> ExportSpec name # sconcat :: NonEmpty (ExportSpec name) -> ExportSpec name # stimes :: Integral b => b -> ExportSpec name -> ExportSpec name # | |||||
| Generic (ExportSpec name) Source # | |||||
Defined in Cryptol.ModuleSystem.Exports Associated Types
Methods from :: ExportSpec name -> Rep (ExportSpec name) x # to :: Rep (ExportSpec name) x -> ExportSpec name # | |||||
| Show name => Show (ExportSpec name) Source # | |||||
Defined in Cryptol.ModuleSystem.Exports Methods showsPrec :: Int -> ExportSpec name -> ShowS # show :: ExportSpec name -> String # showList :: [ExportSpec name] -> ShowS # | |||||
| (Ord a, TraverseNames a) => TraverseNames (ExportSpec a) Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => ExportSpec a -> f (ExportSpec a) Source # | |||||
| NFData name => NFData (ExportSpec name) Source # | |||||
Defined in Cryptol.ModuleSystem.Exports Methods rnf :: ExportSpec name -> () # | |||||
| type Rep (ExportSpec name) Source # | |||||
Defined in Cryptol.ModuleSystem.Exports type Rep (ExportSpec name) = D1 ('MetaData "ExportSpec" "Cryptol.ModuleSystem.Exports" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'True) (C1 ('MetaCons "ExportSpec" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Namespace (Set name))))) | |||||
isExportedBind :: Ord name => name -> ExportSpec name -> Bool Source #
Check to see if a binding is exported.
isExportedType :: Ord name => name -> ExportSpec name -> Bool Source #
Check to see if a type synonym is exported.
isExported :: Ord name => Namespace -> name -> ExportSpec name -> Bool Source #
Constructors
| PragmaNote String | |
| PragmaProperty |
Instances
| Generic Pragma Source # | |||||
Defined in Cryptol.Parser.AST Associated Types
| |||||
| Show Pragma Source # | |||||
| NoPos Pragma Source # | |||||
| PP Pragma Source # | |||||
| NFData Pragma Source # | |||||
Defined in Cryptol.Parser.AST | |||||
| Eq Pragma Source # | |||||
| type Rep Pragma Source # | |||||
Defined in Cryptol.Parser.AST type Rep Pragma = D1 ('MetaData "Pragma" "Cryptol.Parser.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "PragmaNote" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "PragmaProperty" 'PrefixI 'False) (U1 :: Type -> Type)) | |||||
Instances
| Generic Fixity Source # | |||||
Defined in Cryptol.Utils.Fixity Associated Types
| |||||
| Show Fixity Source # | |||||
| PP Fixity Source # | |||||
| NFData Fixity Source # | |||||
Defined in Cryptol.Utils.Fixity | |||||
| Eq Fixity Source # | |||||
| Ord Fixity Source # | |||||
| type Rep Fixity Source # | |||||
Defined in Cryptol.Utils.Fixity type Rep Fixity = D1 ('MetaData "Fixity" "Cryptol.Utils.Fixity" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "Fixity" 'PrefixI 'True) (S1 ('MetaSel ('Just "fAssoc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Assoc) :*: S1 ('MetaSel ('Just "fLevel") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int))) | |||||
A mapping from an identifier defined in some module to its real name.
Instances
| Semigroup PrimMap Source # | |||||
| Generic PrimMap Source # | |||||
Defined in Cryptol.ModuleSystem.Name Associated Types
| |||||
| Show PrimMap Source # | |||||
| NFData PrimMap Source # | |||||
Defined in Cryptol.ModuleSystem.Name | |||||
| type Rep PrimMap Source # | |||||
Defined in Cryptol.ModuleSystem.Name type Rep PrimMap = D1 ('MetaData "PrimMap" "Cryptol.ModuleSystem.Name" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "PrimMap" 'PrefixI 'True) (S1 ('MetaSel ('Just "primDecls") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map PrimIdent Name)) :*: S1 ('MetaSel ('Just "primTypes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map PrimIdent Name)))) | |||||
module Cryptol.TypeCheck.Type
Constructors
| CallC (FFIFunType FFIType) | |
| CallAbstract (FFIFunType Type) |
Instances
| Generic FFI Source # | |||||
Defined in Cryptol.TypeCheck.AST Associated Types
| |||||
| Show FFI Source # | |||||
| FreeVars FFI Source # | |||||
| TraverseNames FFI Source # | |||||
Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => FFI -> f FFI Source # | |||||
| ShowParseable FFI Source # | |||||
Defined in Cryptol.TypeCheck.Parseable | |||||
| NFData FFI Source # | |||||
Defined in Cryptol.TypeCheck.AST | |||||
| type Rep FFI Source # | |||||
Defined in Cryptol.TypeCheck.AST type Rep FFI = D1 ('MetaData "FFI" "Cryptol.TypeCheck.AST" "cryptol-3.5.0-HoSGjqdyafy4TMoEJgOBMg" 'False) (C1 ('MetaCons "CallC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FFIFunType FFIType))) :+: C1 ('MetaCons "CallAbstract" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FFIFunType Type)))) | |||||