{-# LANGUAGE Safe #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-| Module : Data.PolyMap.Storage Copyright : (c) 2015 David Farrell License : PublicDomain Stability : unstable Portability : non-portable (GHC extensions) Storage typeclass for polymaps. -} module Data.PolyMap.Storage ( Storage , singleton , lookupIndex , lookupElem ) where -- |Typeclass for data types that can act as storage in a polymap. class (Monoid (s a), Foldable s) => Storage s a where singleton :: a -> s a lookupIndex :: Eq a => a -> s a -> Maybe Int lookupElem :: Int -> s a -> Maybe a