insert :: (Eq k) => k -> v -> FunMap k v -> FunMap k v
insert key value (FunMap f) = FunMap g
    where g x | x == key  = Just value
              | otherwise = f x


-- | Deletes an element out of the FunMap.
insert :: (Eq k) => k -> v -> FunMap k v -> FunMap k v
insert key value (FunMap f) = FunMap g
    where g x | x == key  = Just value
              | otherwise = f x


-- | Deletes an element out of the FunMap.
insert key value (FunMap f) = FunMap g
    where g x | x == key  = Just value
              | otherwise = f x


-- | Deletes an element out of the FunMap.