module Data.Homeomorphic(
Shell, shell,
(<<|), couple, dive,
Homeomorphic, empty, insert, find, findOne
) where
import qualified Data.Homeomorphic.MemoCache as H
import Data.Homeomorphic.Internal
newtype Homeomorphic k v = Homeomorphic (H.Homeomorphic k v)
empty :: Homeomorphic k v
empty = Homeomorphic H.empty
insert :: Ord k => Shell k -> v -> Homeomorphic k v -> Homeomorphic k v
insert a b (Homeomorphic c) = Homeomorphic (H.insert a b c)
find :: Ord k => Shell k -> Homeomorphic k v -> [v]
find a (Homeomorphic b) = H.find a b
findOne :: Ord k => Shell k -> Homeomorphic k v -> Maybe v
findOne a (Homeomorphic b) = H.findOne a b