Language.Haskell.GhcMod.Caching.Types

ghc-mod-5.8.0.0: Happy Haskell Hacking

Safe Haskell | None
Language | Haskell2010

Language.Haskell.GhcMod.Caching.Types

# Documentation

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

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

data Cached m s d a #

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 #

Constructors

TimedCacheFiles |
Fields tcCreated :: ModTime `cacheFile` timestamp tcFiles :: [TimedFile] Timestamped files returned by the cached action

Instances

Eq TimedCacheFiles # |
Methods (==) :: TimedCacheFiles -> TimedCacheFiles -> Bool # (/=) :: TimedCacheFiles -> TimedCacheFiles -> Bool #
Ord TimedCacheFiles # |
Methods compare :: TimedCacheFiles -> TimedCacheFiles -> Ordering # (<) :: TimedCacheFiles -> TimedCacheFiles -> Bool # (<=) :: TimedCacheFiles -> TimedCacheFiles -> Bool # (>) :: TimedCacheFiles -> TimedCacheFiles -> Bool # (>=) :: TimedCacheFiles -> TimedCacheFiles -> Bool # max :: TimedCacheFiles -> TimedCacheFiles -> TimedCacheFiles # min :: TimedCacheFiles -> TimedCacheFiles -> TimedCacheFiles #

type ChCacheData = (Programs, FilePath, (String, String)) #