Copyright | (c) 2013-2016 Galois Inc. |
---|---|
License | BSD3 |
Maintainer | cryptol@galois.com |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- type Iface = IfaceG ModName
- data IfaceG mname = Iface {
- ifModName :: !mname
- ifPublic :: IfaceDecls
- ifPrivate :: IfaceDecls
- ifParams :: IfaceParams
- data IfaceDecls = IfaceDecls {
- ifTySyns :: Map Name IfaceTySyn
- ifNewtypes :: Map Name IfaceNewtype
- ifAbstractTypes :: Map Name IfaceAbstractType
- ifDecls :: Map Name IfaceDecl
- ifModules :: !(Map Name (IfaceG Name))
- type IfaceTySyn = TySyn
- ifTySynName :: TySyn -> Name
- type IfaceNewtype = Newtype
- data IfaceDecl = IfaceDecl {
- ifDeclName :: !Name
- ifDeclSig :: Schema
- ifDeclPragmas :: [Pragma]
- ifDeclInfix :: Bool
- ifDeclFixity :: Maybe Fixity
- ifDeclDoc :: Maybe Text
- data IfaceParams = IfaceParams {}
- emptyIface :: mname -> IfaceG mname
- ifacePrimMap :: Iface -> PrimMap
- noIfaceParams :: IfaceParams
- isEmptyIfaceParams :: IfaceParams -> Bool
- ifaceIsFunctor :: IfaceG mname -> Bool
- flatPublicIface :: IfaceG mname -> IfaceDecls
- flatPublicDecls :: IfaceDecls -> IfaceDecls
- filterIfaceDecls :: (Name -> Bool) -> IfaceDecls -> IfaceDecls
- ifaceDeclsNames :: IfaceDecls -> Set Name
Documentation
The resulting interface generated by a module that has been typechecked.
Iface | |
|
Instances
Show mname => Show (IfaceG mname) Source # | |
Generic (IfaceG mname) Source # | |
NFData mname => NFData (IfaceG mname) Source # | |
Defined in Cryptol.ModuleSystem.Interface | |
type Rep (IfaceG mname) Source # | |
Defined in Cryptol.ModuleSystem.Interface type Rep (IfaceG mname) = D1 ('MetaData "IfaceG" "Cryptol.ModuleSystem.Interface" "cryptol-2.13.0-BA7OuzmYZ3M9j8JsJfXs6b" 'False) (C1 ('MetaCons "Iface" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ifModName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 mname) :*: S1 ('MetaSel ('Just "ifPublic") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IfaceDecls)) :*: (S1 ('MetaSel ('Just "ifPrivate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IfaceDecls) :*: S1 ('MetaSel ('Just "ifParams") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IfaceParams)))) |
data IfaceDecls Source #
IfaceDecls | |
|
Instances
Show IfaceDecls Source # | |
Defined in Cryptol.ModuleSystem.Interface showsPrec :: Int -> IfaceDecls -> ShowS # show :: IfaceDecls -> String # showList :: [IfaceDecls] -> ShowS # | |
Generic IfaceDecls Source # | |
Defined in Cryptol.ModuleSystem.Interface type Rep IfaceDecls :: Type -> Type # from :: IfaceDecls -> Rep IfaceDecls x # to :: Rep IfaceDecls x -> IfaceDecls # | |
Semigroup IfaceDecls Source # | |
Defined in Cryptol.ModuleSystem.Interface (<>) :: IfaceDecls -> IfaceDecls -> IfaceDecls # sconcat :: NonEmpty IfaceDecls -> IfaceDecls # stimes :: Integral b => b -> IfaceDecls -> IfaceDecls # | |
Monoid IfaceDecls Source # | |
Defined in Cryptol.ModuleSystem.Interface mempty :: IfaceDecls # mappend :: IfaceDecls -> IfaceDecls -> IfaceDecls # mconcat :: [IfaceDecls] -> IfaceDecls # | |
NFData IfaceDecls Source # | |
Defined in Cryptol.ModuleSystem.Interface rnf :: IfaceDecls -> () # | |
type Rep IfaceDecls Source # | |
Defined in Cryptol.ModuleSystem.Interface |
type IfaceTySyn = TySyn Source #
ifTySynName :: TySyn -> Name Source #
type IfaceNewtype = Newtype Source #
IfaceDecl | |
|
Instances
data IfaceParams Source #
IfaceParams | |
|
Instances
emptyIface :: mname -> IfaceG mname Source #
ifacePrimMap :: Iface -> PrimMap Source #
Produce a PrimMap from an interface.
NOTE: the map will expose both public and private names.
isEmptyIfaceParams :: IfaceParams -> Bool Source #
ifaceIsFunctor :: IfaceG mname -> Bool Source #
flatPublicIface :: IfaceG mname -> IfaceDecls Source #
The public declarations in all modules, including nested The modules field contains public functors Assumes that we are not a functor.
filterIfaceDecls :: (Name -> Bool) -> IfaceDecls -> IfaceDecls Source #
ifaceDeclsNames :: IfaceDecls -> Set Name Source #