diff --git a/Data/IntervalMap/Generic/Base.hs b/Data/IntervalMap/Generic/Base.hs
--- a/Data/IntervalMap/Generic/Base.hs
+++ b/Data/IntervalMap/Generic/Base.hs
@@ -171,7 +171,10 @@
             -- * Min\/Max
             , findMin
             , findMax
+            , lookupMin
+            , lookupMax
             , findLast
+            , lookupLast
             , deleteMin
             , deleteMax
             , deleteFindMin
@@ -570,6 +573,18 @@
 findMax (Node _ _ _ _ _ r) = findMax r
 findMax Nil = error "IntervalMap.findMin: empty map"
 
+-- | /O(log n)/. Returns the smallest key and its associated value.
+lookupMin :: IntervalMap k v -> Maybe (k, v)
+lookupMin (Node _ k _ v Nil _) = Just (k,v)
+lookupMin (Node _ _ _ _ l _) = lookupMin l
+lookupMin Nil = Nothing
+
+-- | /O(log n)/. Returns the largest key and its associated value.
+lookupMax :: IntervalMap k v -> Maybe (k, v)
+lookupMax (Node _ k _ v _ Nil) = Just (k,v)
+lookupMax (Node _ _ _ _ _ r) = lookupMax r
+lookupMax Nil = Nothing
+
 -- | Returns the key with the largest endpoint and its associated value.
 -- If there is more than one key with that endpoint, return the rightmost.
 --
@@ -584,6 +599,22 @@
                                                       else go r <|> go l
                           | otherwise  = Nothing
     sameU a b = compareUpperBounds a b == EQ
+
+-- | Returns the key with the largest endpoint and its associated value.
+-- If there is more than one key with that endpoint, return the rightmost.
+--
+-- /O(n)/, since all keys could have the same endpoint.
+-- /O(log n)/ average case.
+lookupLast :: (Interval k e) => IntervalMap k v -> Maybe (k, v)
+lookupLast Nil = Nothing
+lookupLast t@(Node _ _ mx _ _ _) = go t
+  where
+    go Nil = Nothing
+    go (Node _ k m v l r) | sameU m mx = if sameU k m then go r <|> Just (k,v)
+                                                      else go r <|> go l
+                          | otherwise  = Nothing
+    sameU a b = compareUpperBounds a b == EQ
+
 
 
 -- Type to indicate whether the number of black nodes changed or stayed the same.
diff --git a/Data/IntervalMap/Generic/Lazy.hs b/Data/IntervalMap/Generic/Lazy.hs
--- a/Data/IntervalMap/Generic/Lazy.hs
+++ b/Data/IntervalMap/Generic/Lazy.hs
@@ -138,6 +138,9 @@
             , findMin
             , findMax
             , findLast
+            , lookupMin
+            , lookupMax
+            , lookupLast
             , deleteMin
             , deleteMax
             , deleteFindMin
diff --git a/Data/IntervalMap/Generic/Strict.hs b/Data/IntervalMap/Generic/Strict.hs
--- a/Data/IntervalMap/Generic/Strict.hs
+++ b/Data/IntervalMap/Generic/Strict.hs
@@ -173,6 +173,9 @@
             , findMin
             , findMax
             , findLast
+            , lookupMin
+            , lookupMax
+            , lookupLast
             , deleteMin
             , deleteMax
             , deleteFindMin
diff --git a/Data/IntervalMap/Lazy.hs b/Data/IntervalMap/Lazy.hs
--- a/Data/IntervalMap/Lazy.hs
+++ b/Data/IntervalMap/Lazy.hs
@@ -140,6 +140,9 @@
             , findMin
             , findMax
             , findLast
+            , lookupMin
+            , lookupMax
+            , lookupLast
             , deleteMin
             , deleteMax
             , deleteFindMin
diff --git a/Data/IntervalMap/Strict.hs b/Data/IntervalMap/Strict.hs
--- a/Data/IntervalMap/Strict.hs
+++ b/Data/IntervalMap/Strict.hs
@@ -184,6 +184,9 @@
             , findMin
             , findMax
             , findLast
+            , lookupMin
+            , lookupMax
+            , lookupLast
             , deleteMin
             , deleteMax
             , deleteFindMin
diff --git a/IntervalMap.cabal b/IntervalMap.cabal
--- a/IntervalMap.cabal
+++ b/IntervalMap.cabal
@@ -1,5 +1,5 @@
 Name:                IntervalMap
-Version:             0.6.0.0
+Version:             0.6.1.0
 Stability:           experimental
 Synopsis:            Containers for intervals, with efficient search.
 Homepage:            http://www.chr-breitkopf.de/comp/IntervalMap
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,4 +1,6 @@
-0.6.0.0  Support ghc 8.4, desupport ghc 7.x
+0.6.1.0  Add safe versions of find... functions.
+
+0.6.0.0  Support ghc 8.4, desupport ghc 7.x.
 
 0.5.3.1  Remove HPC flag.
 0.5.3.0  Add lookupLT... functions.
