liquidhaskell- Liquid Types for Haskell

Safe HaskellNone




This module contains the code for Incremental checking, which finds the part of a target file (the subset of the [CoreBind] that have been modified since it was last checked, as determined by a diff against a saved version of the file.


Changed binders + Unchanged Errors

data DiffCheck Source #

Data Types ----------------------------------------------------------------

Main type of value returned for diff-check.



Use previously saved info to generate DiffCheck target

slice :: FilePath -> [CoreBind] -> GhcSpec -> IO (Maybe DiffCheck) Source #

slice returns a subset of the [CoreBind] of the input target file which correspond to top-level binders whose code has changed and their transitive dependencies.

Use target binders to generate DiffCheck target

thin :: [CoreBind] -> GhcSpec -> [Var] -> DiffCheck Source #

thin cbs sp vs returns a subset of the cbs :: [CoreBind] which correspond to the definitions of vs and the functions transitively called therein for which there are *no* type signatures. Callees with type signatures are assumed to satisfy those signatures.

Save current information for next time

saveResult :: FilePath -> Output Doc -> IO () Source #

save creates an .saved version of the target file, which will be used to find what has changed the next time target is checked.

Names of top-level binders that are rechecked

checkedVars :: DiffCheck -> [Var] Source #

checkedNames returns the names of the top-level binders that will be checked

CoreBinds defining given set of Var

Orphan instances

Functor Diff Source # 


fmap :: (a -> b) -> Diff a -> Diff b #

(<$) :: a -> Diff b -> Diff a #

ToJSON Doc Source # 


toJSON :: Doc -> Value #

toEncoding :: Doc -> Encoding #

ToJSON SourcePos Source #

Aeson instances -----------------------------------------------------------

ToJSON ErrorResult Source # 
FromJSON Doc Source # 


parseJSON :: Value -> Parser Doc #

FromJSON SourcePos Source # 
FromJSON ErrorResult Source # 
ToJSON (Output Doc) Source # 
ToJSON a => ToJSON (AnnInfo a) Source # 
FromJSON (Output Doc) Source # 


parseJSON :: Value -> Parser (Output Doc) #

FromJSON a => FromJSON (AnnInfo a) Source # 


parseJSON :: Value -> Parser (AnnInfo a) #

(ToJSON k, ToJSON v) => ToJSON (HashMap k v) Source # 


toJSON :: HashMap k v -> Value #

toEncoding :: HashMap k v -> Encoding #

(Eq k, Hashable k, FromJSON k, FromJSON v) => FromJSON (HashMap k v) Source # 


parseJSON :: Value -> Parser (HashMap k v) #