cryptol-2.9.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

PT (PrimType Name) (Maybe String)

A primitive/abstract typee

Instances
Show TyDecl Source # 
Instance details

Defined in Cryptol.TypeCheck.Depends

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.