diff --git a/bed-and-breakfast.cabal b/bed-and-breakfast.cabal
--- a/bed-and-breakfast.cabal
+++ b/bed-and-breakfast.cabal
@@ -1,10 +1,17 @@
 Name:           bed-and-breakfast
-Version:        0.1.1
+Version:        0.1.2
 Synopsis:       Efficient Matrix operations in 100% Haskell.
 Description:    Efficient Matrix operations in 100% Haskell.
                 .
+                [@v0.1@] Initial version, features @det@,
+                    basic arithmetic operations, and instances for
+                    'Float', 'Double', 'Complex', and 'Rational'.
+                .
                 [@v0.1.1@] Fixed wrong algorithm for computing the
                     inverse of a Matrix.
+                .
+                [@v0.1.2@] Added instances for @Num Matrix@,
+                    @Fractional Matrix@, and @Eq Matrix@.
 
 License:        MIT
 License-File:   LICENSE
diff --git a/src/Numeric/Matrix.hs b/src/Numeric/Matrix.hs
--- a/src/Numeric/Matrix.hs
+++ b/src/Numeric/Matrix.hs
@@ -61,6 +61,8 @@
 import Data.Function
 import Data.Ratio
 import Data.Complex
+import Data.Maybe
+
 import qualified Data.List as L
 import Data.Array.IArray
 import Data.Array.MArray
@@ -87,6 +89,24 @@
     show = unlines . P.map showRow . toList
       where
         showRow = unwords . P.map ((' ':) . show)
+
+instance (MatrixElement e) => Num (Matrix e) where
+    (+) = plus
+    (-) = minus
+    (*) = times
+    abs         = matrix (1,1) . const . abs . det
+    signum      = matrix (1,1) . const . signum . det
+    fromInteger = matrix (1,1) . const . fromInteger
+    
+instance (MatrixElement e, Fractional e) => Fractional (Matrix e) where
+    recip        = fromJust . inv
+    fromRational = matrix (1,1) . const . fromRational
+
+instance (MatrixElement e) => Eq (Matrix e) where
+    m == n
+        | dimensions m == dimensions n
+            = allWithIndex (\ix e -> m `at` ix == e) n
+        | otherwise = False
 
 
 class Division e where
