Copyright | (c) 2013-2016 Galois Inc. |
---|---|
License | BSD3 |
Maintainer | cryptol@galois.com |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module defines the scoping rules for value- and type-level names in Cryptol.
Synopsis
- tnamesNT :: Newtype name -> ([Located name], ())
- tnamesT :: Ord name => Type name -> Set name
- tnamesC :: Ord name => Prop name -> Set name
- namesD :: Ord name => Decl name -> ([Located name], Set name)
- tnamesD :: Ord name => Decl name -> ([Located name], Set name)
- namesB :: Ord name => Bind name -> ([Located name], Set name)
- namesP :: Pattern name -> [Located name]
- boundNames :: Ord name => [name] -> Set name -> Set name
- boundNamesSet :: Ord name => Set name -> Set name -> Set name
Documentation
tnamesT :: Ord name => Type name -> Set name Source #
Compute the type synonyms/type variables used by a type.
namesD :: Ord name => Decl name -> ([Located name], Set name) Source #
The names defined and used by a single declarations.
tnamesD :: Ord name => Decl name -> ([Located name], Set name) Source #
The type names defined and used by a single declaration.
namesB :: Ord name => Bind name -> ([Located name], Set name) Source #
The names defined and used by a single binding.
namesP :: Pattern name -> [Located name] Source #
The names defined by a pattern. These will always be unqualified names.