cryptol-3.0.0: Cryptol: The Language of Cryptography

Safe Haskell | Safe-Inferred
Language | Haskell2010

Cryptol.IR.FreeVars

Synopsis

- class FreeVars e where
  - freeVars :: e -> Deps
- data Deps = Deps {
  - valDeps :: Set Name
  - tyDeps :: Set Name
  - tyParams :: Set TParam
  }
- class Defs d where
  - defs :: d -> Set Name
- moduleDeps :: Module -> Map Name Deps
- transDeps :: Map Name Deps -> Map Name Deps

# Documentation

class FreeVars e where Source #

Methods

freeVars :: e -> Deps Source #

#### Instances

Instances details

FreeVars Decl Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: Decl -> Deps Source #
FreeVars DeclDef Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: DeclDef -> Deps Source #
FreeVars DeclGroup Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: DeclGroup -> Deps Source #
FreeVars Expr Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: Expr -> Deps Source #
FreeVars Match Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: Match -> Deps Source #
FreeVars TCon Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: TCon -> Deps Source #
FreeVars Newtype Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: Newtype -> Deps Source #
FreeVars Schema Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: Schema -> Deps Source #
FreeVars TVar Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: TVar -> Deps Source #
FreeVars Type Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: Type -> Deps Source #
FreeVars e => FreeVars [e] Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods freeVars :: [e] -> Deps Source #

data Deps Source #

Constructors

Deps |

Fields

- valDeps :: Set Name

  Undefined value names

- tyDeps :: Set Name

  Undefined type names (from newtype)

- tyParams :: Set TParam

  Undefined type params (e.d. mod params)

#### Instances

Instances details

Monoid Deps Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods mempty :: Deps Source # mappend :: Deps -> Deps -> Deps Source # mconcat :: [Deps] -> Deps Source #
Semigroup Deps Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods (<>) :: Deps -> Deps -> Deps Source # sconcat :: NonEmpty Deps -> Deps Source # stimes :: Integral b => b -> Deps -> Deps Source #
Eq Deps Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods (==) :: Deps -> Deps -> Bool Source # (/=) :: Deps -> Deps -> Bool Source #

class Defs d where Source #

Methods

defs :: d -> Set Name Source #

#### Instances

Instances details

Defs Decl Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods defs :: Decl -> Set Name Source #
Defs DeclGroup Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods defs :: DeclGroup -> Set Name Source #
Defs Match Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods defs :: Match -> Set Name Source #
Defs a => Defs [a] Source # |
Instance details Defined in Cryptol.IR.FreeVars Methods defs :: [a] -> Set Name Source #

moduleDeps :: Module -> Map Name Deps Source #

Dependencies of top-level declarations in a module. These are dependencies on module parameters or things defined outside the module.

transDeps :: Map Name Deps -> Map Name Deps Source #

Compute the transitive closure of the given dependencies.