liquidhaskell-0.8.2.4: Liquid Types for Haskell

Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.Bare.Env

Contents

Synopsis

Documentation

type BareM = WriterT [Warn] (ExceptT Error (StateT BareEnv IO)) Source #

Error-Reader-IO For Bare Transformation -----------------------------------

data BareEnv Source #

Constructors

BE 

Instances

HasConfig BareEnv Source # 
Freshable BareM Integer Source #
NOTE:Family-Instance-Environment
For some reason, the usual lookup machinery (lookupGhcThing) refuses to properly lookup _imported_ names of family-instance data-constructors. e.g. see testsposExactGADT8.hs and testsposExactGADT9.hs; inside the latter, the lookupGhcThing fails to resolve the name of BlobXVal (but it works just fine when BlobXVal is a plain DataCon as in testsposExactGADT8a.hs To get around this hassle, we also save a map from _family instance_ DataCon-names to the corresponding family instance Tycon in the famEnv field of BareEnv. This map is *created* inside the function FIXME, and *used* inside the function FIXME.

withVArgs :: (Foldable t, PPrint a) => SourcePos -> SourcePos -> t a -> BareM b -> BareM b Source #

Exact DataConstructor Functions

type DataConMap = HashMap (Symbol, Int) Symbol Source #

DataConMap stores the names of those ctor-fields that have been declared as SMT ADTs so we don't make up new names for them.