diff --git a/Data/Semiring.hs b/Data/Semiring.hs
deleted file mode 100644
--- a/Data/Semiring.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- | 
--- Module      : Data.Semiring
--- Copyright   : Thomas Wilke, Frank Huch, Sebastian Fischer, Peter Harpending
--- License     : BSD3
--- Maintainer  : Peter Harpending <pharpend2@gmail.com>
--- 
--- This library provides a type class for semirings.
--- 
-
-module Data.Semiring where
-
--- |
--- A semiring is an additive commutative monoid with identity 'zero':
--- 
--- >         a .+. b  ==  b .+. a
--- >      zero .+. a  ==  a
--- > (a .+. b) .+. c  ==  a .+. (b .+. c)
--- 
--- A semiring is a multiplicative monoid with identity 'one':
--- 
--- >        one .*. a  ==  a
--- >        a .*. one  ==  a
--- >  (a .*. b) .*. c  ==  a .*. (b .*. c)
--- 
--- Multiplication distributes over addition:
--- 
--- > a .*. (b .+. c)  ==  (a .*. b) .+. (a .*. c)
--- > (a .+. b) .*. c  ==  (a .*. c) .+. (b .*. c)
--- 
--- 'zero' annihilates a semiring with respect to multiplication:
--- 
--- > zero .*. a  ==  zero
--- > a .*. zero  ==  zero
--- 
--- All laws should hold with respect to the required `Eq` instance.
--- 
--- For example, the Booleans form a semiring.
--- 
---  * @False@ is an identity of disjunction which is commutative and
---    associative,
--- 
---  * @True@ is an identity of conjunction which is associative,
--- 
---  * conjunction distributes over disjunction, and
--- 
---  * @False@ annihilates the Booleans with respect to conjunction.
--- 
-class (Eq s) => Semiring s where
-  zero, one    :: s
-  (.+.), (.*.) :: s -> s -> s
diff --git a/semiring-simple.cabal b/semiring-simple.cabal
--- a/semiring-simple.cabal
+++ b/semiring-simple.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             0.1.0.0
+version:             0.2.0.0
 
 -- A short (one-line) description of the package.
 synopsis:            A module for dealing with semirings.
@@ -57,10 +57,10 @@
   -- other-extensions:    
   
   -- Other library packages from which modules are imported.
-  build-depends:       base >=4.6 && <4.7
+  build-depends:       base >=4.7 && <4.8
   
   -- Directories containing source files.
-  -- hs-source-dirs:      
+  hs-source-dirs:      src/
   
   -- Base language which the package is written in.
   default-language:    Haskell2010
diff --git a/src/Data/Semiring.hs b/src/Data/Semiring.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Semiring.hs
@@ -0,0 +1,37 @@
+{-| 
+Module      : Data.Semiring
+Copyright   : Thomas Wilke, Frank Huch, Sebastian Fischer, Peter Harpending
+License     : BSD3
+Maintainer  : Peter Harpending <pharpend2@gmail.com>
+
+This library provides a type class for semirings.
+
+-}
+
+module Data.Semiring where
+
+-- |
+-- A semiring is an additive commutative monoid with identity 'zero':
+-- 
+-- >         a .+. b  ==  b .+. a
+-- >      zero .+. a  ==  a
+-- > (a .+. b) .+. c  ==  a .+. (b .+. c)
+-- 
+-- A semiring is a multiplicative monoid with identity 'one':
+-- 
+-- >        one .*. a  ==  a
+-- >        a .*. one  ==  a
+-- >  (a .*. b) .*. c  ==  a .*. (b .*. c)
+-- 
+-- Multiplication distributes over addition:
+-- 
+-- > a .*. (b .+. c)  ==  (a .*. b) .+. (a .*. c)
+-- > (a .+. b) .*. c  ==  (a .*. c) .+. (b .*. c)
+-- 
+-- 'zero' annihilates a semiring with respect to multiplication:
+-- 
+-- > zero .*. a  ==  zero
+-- > a .*. zero  ==  zero
+class (Eq s) => Semiring s where
+  zero, one    :: s
+  (.+.), (.*.) :: s -> s -> s
