diff --git a/Data/AEq.hs b/Data/AEq.hs
--- a/Data/AEq.hs
+++ b/Data/AEq.hs
@@ -12,7 +12,6 @@
     where
 
 import Data.Int
-import Data.Maybe    ( fromMaybe )
 import Data.Word
 import Data.Complex
 import Numeric.IEEE
@@ -120,8 +119,13 @@
     (~==) xs ys = and $ zipWith (~==) xs ys
 
 instance (AEq a) => AEq (Maybe a) where
-    (===) x y = fromMaybe True $ do x >>= \x' -> y >>= \y' -> return ((===) x' y')
-    (~==) x y = fromMaybe True $ do x >>= \x' -> y >>= \y' -> return ((~==) x' y')
+    (===) Nothing  Nothing  = True
+    (===) (Just x) (Just y) = (===) x y
+    (===) _ _ = False
+    
+    (~==) Nothing  Nothing  = True
+    (~==) (Just x) (Just y) = (~==) x y
+    (~==) _ _ = False
     
 instance (AEq a, AEq b) => AEq (Either a b) where
     (===) (Left a1)  (Left a2)  = (===) a1 a2
diff --git a/ieee.cabal b/ieee.cabal
--- a/ieee.cabal
+++ b/ieee.cabal
@@ -1,5 +1,5 @@
 name:            ieee
-version:         0.1
+version:         0.2
 homepage:        http://stat.stanford.edu/~patperry/code/ieee
 synopsis:        Approximate comparisons for IEEE floating point numbers
 description:
