withAssocCache :: (Monad m, Eq k)
               => (Cache (StateT [(k,v)] m) k v -> StateT [(k,v)] m a)
               -> m a
withAssocCache body = evalStateT (body assocCache) []
withAssocCache :: (Monad m, Eq k)
               => (Cache (StateT [(k,v)] m) k v -> StateT [(k,v)] m a)
               -> m a
withAssocCache body = evalStateT (body assocCache) []
withAssocCache body = evalStateT (body assocCache) []