Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Cache a = Cache {
- getCache ∷ a
- withCacheA ∷ (Applicative m, Eq a) ⇒ Cache a → a → (a → m ()) → m ()
- traceWithCache ∷ (Applicative m, Eq a) ⇒ Tracer m a → Cache a → a → m ()
- mapTraceWithCache ∷ (Applicative m, Eq a) ⇒ (a → b) → Tracer m b → Cache a → a → m ()
Documentation
Cache newtype wrapper allows to perform an action only if the cache is not up-to-date, i.e. different than another value dimmed more recent.
withCacheA ∷ (Applicative m, Eq a) ⇒ Cache a → a → (a → m ()) → m () Source #
Run a computation that depends on a certain cached value, only if the the most recent one is different.
traceWithCache ∷ (Applicative m, Eq a) ⇒ Tracer m a → Cache a → a → m () Source #
Trace with cache only performs the tracing when the cached value is different than the most recent one.
mapTraceWithCache ∷ (Applicative m, Eq a) ⇒ (a → b) → Tracer m b → Cache a → a → m () Source #
Trace with cache only performs the tracing when the cached value is different than the most recent one. And applies a function to the cache value before tracing.