tilia-0.1.0.0: corpora/vendored/other/cpp/where-clause-after-the-branches.hs
{-# LANGUAGE CPP #-}
-- A where clause written once, after the branches of an equation, stays
-- there rather than going into each of them.
module Cache.Evict where
evict :: Int -> Int
#if MIN_VERSION_base(4,16,0)
evict n = keep (n - 1)
#else
evict n = keep n
#endif
where
keep = max 0
-- Guards in one branch and not the other.
shrink :: Int -> Int
#if MIN_VERSION_base(4,16,0)
shrink n
| n > limit = limit
| otherwise = n
#else
shrink n = min n limit
#endif
where
limit = 64
-- The same for an alternative of a case.
stale :: Maybe Int -> Int
stale m = case m of
#if MIN_VERSION_base(4,16,0)
Just n -> age n
#else
Just n -> age (n + 1)
#endif
where
age = subtract 1
Nothing -> 0
-- A where clause in each branch stays in each.
expire :: Int -> Int
#if MIN_VERSION_base(4,16,0)
expire n = ttl n
where
ttl = (* 2)
#else
expire n = ttl n
where
ttl = id
#endif