
Discussion has gotten going again about harmonizing between the names findWithDefault and lookupDefault in containers and unordered-containers: findWithDefault :: Ord k => a -> k -> Map k a -> a lookupDefault :: (Eq k, Hashable k) => a -> k -> HashMap k a -> a I've been fairly unenthusiastic about adding extra names for this function in one package or the other, in large part because I don't like the function. I'd much rather have something in the spirit of `either`, `maybe`, `bool`, etc.: lurkup :: Ord k => r -> (a -> r) -> k -> Map k a -> r lurkup r f k = maybe r f . lookup k lookup k = lurkup Nothing Just k Unfortunately, I haven't been able to come up with a decent name for this function. Can anyone help?