{-| Module : Data.Cache Copyright : Copyright (jp) 2020-present, murakami License : BSD3 Maintainer : murakami The class Cache. -} module Data.Cache ( Cache(..) ) where import Data.LRUCache class Cache c where {-# MINIMAL (<|), (|>) #-} -- | view value by key (<|) :: (Eq k) => k -> c k v -> (Maybe v, c k v) -- | push a cache item (|>) :: (k, v) -> c k v -> c k v instance Cache LRUCache where (<|) = view (|>) = push