ghc-mod-5.4.0.0: Happy Haskell Programming

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.GhcMod.Caching.Types

Documentation

type CacheContents d a = Maybe ([FilePath], d, a) Source

type CacheLens s d a = s :-> CacheContents d a Source

data Cached m s d a Source

Constructors

Cached 

Fields

cacheFile :: FilePath
 
cacheLens :: Maybe (CacheLens s d a)
 
cachedAction :: TimedCacheFiles -> d -> Maybe a -> m ([FilePath], a)
cachedAction tcf data ma
  • tcf: Input file timestamps. Not technically necessary, just an optimizazion when knowing which input files changed can make updating the cache faster
  • data: Arbitrary static input data to cache action. Can be used to invalidate the cache using something other than file timestamps i.e. environment tool version numbers
  • ma: Cached data if it existed

Returns:

  • fst: Input files used in generating the cache
  • snd: Cache data, will be stored alongside the static input data in the cacheFile

The cached action, will only run if one of the following is true:

  • cacheFile doesn't exist yet
  • cacheFile exists and inputData changed
  • any files returned by the cached action changed

data TimedCacheFiles Source

Constructors

TimedCacheFiles 

Fields

tcCacheFile :: Maybe TimedFile

cacheFile timestamp

tcFiles :: [TimedFile]

Timestamped files returned by the cached action