ghc-mod-5.8.0.0: Happy Haskell Hacking

Safe HaskellNone
LanguageHaskell2010

GhcMod.Caching.Types

Documentation

type CacheContents d a = Maybe (ModTime, [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