liquidhaskell-0.8.10.1: Liquid Types for Haskell
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.GHC.Interface

Synopsis

Determine the build-order for target files

realTargets :: Maybe HscEnv -> Config -> [FilePath] -> IO [FilePath] #

realTargets mE cfg targets uses configureGhcTargets to return a list of files

i1, i2, ...
++ [f1, f2, ...]
  1. Where each file only (transitively imports) PRECEDIING ones;
  2. `f1..` are a permutation of the original targets;
  3. `i1..` either don't have "fresh" .bspec files.

Extract all information needed for verification

getTargetInfos :: Maybe HscEnv -> Config -> [FilePath] -> IO ([TargetInfo], HscEnv) #

GHC Interface Pipeline ----------------------------------------------------

runLiquidGhc :: Maybe HscEnv -> Config -> Ghc a -> IO a #

GHC Configuration & Setup -------------------------------------------------

Printer

predicates

Internal exports (provisional)

extractSpecComments :: ApiAnns -> [(SourcePos, String)] #

Extract Specifications from GHC -------------------------------------------

extractSpecQuotes' :: (a -> Module) -> (a -> [Annotation]) -> a -> [BPspec] #

classCons :: Maybe [ClsInst] -> [Id] #

Extract Ids ---------------------------------------------------------------

makeGhcSrc :: Config -> FilePath -> TypecheckedModule -> ModSummary -> Ghc GhcSrc #

makeGhcSrc builds all the source-related information needed for consgen

allImports :: [LImportDecl GhcRn] -> HashSet Symbol #

makeFamInstEnv :: [FamInst] -> ([TyCon], [(Symbol, DataCon)]) #

Family instance information

findAndParseSpecFiles :: GhcMonadLike m => Config -> HashSet FilePath -> ModSummary -> [Module] -> m [(ModName, BareSpec)] #

Finding & Parsing Files ---------------------------------------------------

Handle Spec Files ---------------------------------------------------------

lookupTyThings :: GhcMonadLike m => HscEnv -> ModSummary -> TcGblEnv -> m [(Name, Maybe TyThing)] #

lookupTyThings grabs all the Names and associated TyThing known to GHC for this module; we will use this to create our name-resolution environment (see Resolve)

availableTyCons :: GhcMonadLike m => HscEnv -> ModSummary -> TcGblEnv -> [AvailInfo] -> m [TyCon] #

Returns all the available (i.e. exported) TyCons (type constructors) for the input Module.

availableVars :: GhcMonadLike m => HscEnv -> ModSummary -> TcGblEnv -> [AvailInfo] -> m [Var] #

Returns all the available (i.e. exported) Vars for the input Module.

Orphan instances

Show TargetInfo # 
Instance details

PPrint TargetVars # 
Instance details

Methods

pprintTidy :: Tidy -> TargetVars -> Doc #

pprintPrec :: Int -> Tidy -> TargetVars -> Doc #

PPrint TargetSpec #

Pretty Printing -----------------------------------------------------------

Instance details

Methods

pprintTidy :: Tidy -> TargetSpec -> Doc #

pprintPrec :: Int -> Tidy -> TargetSpec -> Doc #

PPrint TargetInfo # 
Instance details

Methods

pprintTidy :: Tidy -> TargetInfo -> Doc #

pprintPrec :: Int -> Tidy -> TargetInfo -> Doc #

Result SourceError # 
Instance details

Methods

result :: SourceError -> FixResult UserError #