cryptol-2.7.0: Cryptol: The Language of Cryptography

Copyright(c) 2013-2016 Galois Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Cryptol.TypeCheck.Depends

Description

 
Synopsis

Documentation

data TyDecl Source #

Constructors

TS (TySyn Name) (Maybe String)

Type synonym

NT (Newtype Name) (Maybe String)

Newtype

AT (ParameterType Name) (Maybe String)

Parameter type

PS (PropSyn Name) (Maybe String)

Property synonym

orderTyDecls :: [TyDecl] -> InferM [TyDecl] Source #

Check for duplicate and recursive type synonyms. Returns the type-synonyms in dependency order.

orderBinds :: [Bind Name] -> [SCC (Bind Name)] Source #

Associate type signatures with bindings and order bindings by dependency.

mkScc :: [(a, [Name], [Name])] -> [SCC a] Source #

Given a list of declarations, annoted with (i) the names that they define, and (ii) the names that they use, we compute a list of strongly connected components of the declarations. The SCCs are in dependency order.

combineMaps :: [Map Name (Located a)] -> InferM (Map Name (Located a)) Source #

Combine a bunch of definitions into a single map. Here we check that each name is defined only onces.

combine :: [(Name, Located a)] -> InferM (Map Name (Located a)) Source #

Combine a bunch of definitions into a single map. Here we check that each name is defined only onces.

duplicates :: Ord a => [Located a] -> [(a, [Range])] Source #

Identify multiple occurances of something.