cryptol-2.11.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 Text)

Type synonym

NT (Newtype Name) (Maybe Text)

Newtype

AT (ParameterType Name) (Maybe Text)

Parameter type

PS (PropSyn Name) (Maybe Text)

Property synonym

PT (PrimType Name) (Maybe Text)

A primitive/abstract typee

Instances

Instances details
Show TyDecl Source # 
Instance details

Defined in Cryptol.TypeCheck.Depends

orderTyDecls :: [TyDecl] -> InferM (Either Error [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.