{-# LANGUAGE MultiParamTypeClasses
           , FunctionalDependencies
  #-}

module Data.BTree.KVBackend.Class
       ( KVBackend(..) )
       where


class Monad m => KVBackend m k v | m -> k, m -> v where
  store  :: k -> v -> m ()
  fetch  :: k ->      m (Maybe v)
  remove :: k ->      m ()