liquidhaskell-boot-0.9.2.5.0: Liquid Types for Haskell
Safe HaskellSafe-Inferred
LanguageHaskell98

Language.Haskell.Liquid.Bare.Types

Description

This module has the code that uses the GHC definitions to: 1. MAKE a name-resolution environment, 2. USE the environment to translate plain symbols into Var, TyCon, etc.

Synopsis

Name resolution environment

data Env Source #

Name resolution environment

Constructors

RE 

Fields

Instances

Instances details
HasConfig Env Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Types

Methods

getConfig :: Env -> Config Source #

type TyThingMap = HashMap Symbol [(Symbol, TyThing)] Source #

A TyThingMap is used to resolve symbols into GHC TyThing and, from there into Var, TyCon, DataCon, etc.

type LocalVars = HashMap Symbol [(Int, Var)] Source #

LocalVars is a map from names to lists of pairs of Ghc.Var and the lines at which they were defined.

Tycon and Datacon processing environment

data TycEnv Source #

A TycEnv contains the information needed to process Type- and Data- Constructors

data TyConMap Source #

Information about Type Constructors

Instances

Instances details
Qualify TyConMap Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Resolve

Signature processing environment

data SigEnv Source #

A SigEnv contains the needed to process type signatures

Measure related environment

data MeasEnv Source #

Intermediate representation for Measure information

Instances

Instances details
Monoid MeasEnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Types

Semigroup MeasEnv Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Types

Misc

data PlugTV v Source #

See [NOTE: Plug-Holes-TyVars] for a rationale for PlugTV

Constructors

HsTV v

Use tyvars from GHC specification (in the v)

LqTV v

Use tyvars from Liquid specification

GenTV

Generalize ty-vars

RawTV

Do NOT generalize ty-vars (e.g. for type-aliases)

Instances

Instances details
Show v => Show (PlugTV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Types

Methods

showsPrec :: Int -> PlugTV v -> ShowS #

show :: PlugTV v -> String #

showList :: [PlugTV v] -> ShowS #

(Show v, PPrint v) => PPrint (PlugTV v) Source # 
Instance details

Defined in Language.Haskell.Liquid.Bare.Types

Methods

pprintTidy :: Tidy -> PlugTV v -> Doc #

pprintPrec :: Int -> Tidy -> PlugTV v -> Doc #

varSortedReft :: TCEmb TyCon -> Var -> SortedReft Source #

Converting Var to Sort

failMaybe :: Env -> ModName -> Either e r -> Either e (Maybe r) Source #

Handling failed resolution