delete :: (Eq k) => k -> FunMap k v -> FunMap k v
delete key (FunMap f) = FunMap g
    where g x | x == key  = Nothing
              | otherwise = f x


-- | Returns an element from the FunMap if it's in there.
--
-- Throws an error if it isn't.
delete :: (Eq k) => k -> FunMap k v -> FunMap k v
delete key (FunMap f) = FunMap g
    where g x | x == key  = Nothing
              | otherwise = f x


-- | Returns an element from the FunMap if it's in there.
--
-- Throws an error if it isn't.
delete key (FunMap f) = FunMap g
    where g x | x == key  = Nothing
              | otherwise = f x


-- | Returns an element from the FunMap if it's in there.
--
-- Throws an error if it isn't.