cryptol-3.0.0: Cryptol: The Language of Cryptography

Copyright | (c) 2013-2016 Galois Inc.
License | BSD3
Maintainer | cryptol@galois.com
Stability | provisional
Portability | portable
Safe Haskell | Safe
Language | Haskell2010

Cryptol.Parser.Names

Description

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]
- namesNT :: Newtype name -> ([Located name], ())
- boundNames :: Ord name => [name] -> Set name -> Set name
- boundNamesSet :: Ord name => Set name -> Set name -> Set name

# Documentation

tnamesNT :: Newtype name -> ([Located name], ()) Source #

The names defined by a newtype.

tnamesT :: Ord name => Type name -> Set name Source #

Compute the type synonyms/type variables used by a type.

tnamesC :: Ord name => Prop name -> Set name Source #

The type names used by a prop.

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.

namesNT :: Newtype name -> ([Located name], ()) Source #

boundNames :: Ord name => [name] -> Set name -> Set name Source #

Remove some defined variables from a set of free variables.

boundNamesSet :: Ord name => Set name -> Set name -> Set name Source #

Remove some defined variables from a set of free variables.