diff --git a/ChangeLog b/ChangeLog
new file mode 100644
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,51 @@
+2015-01-15  PHO  <pho@cielonegro.org>
+
+	* bitstream.cabal: Bump version to 0.2.0.4
+
+	* Data/Bitstream/Generic.hs (fromBits) [base >= 4.7]: Require
+	FiniteBits not just Bits,  Patch by Liyang HU (#2). This is a
+	signature change only for those who with base >= 4.7. base-4.6
+	users will not see any changes.
+
+	* Data/Bitstream/Packet.hs: Remove redundant import of Ord(..),
+	Patch by Liyang HU (#2).
+
+	* bitstream.cabal (Build-Depends): Relax version constraint on
+	QuickCheck from == 2.5.* to >= 2.5,  Patch by Liyang HU (#2).
+
+2015-10-02  PHO  <pho@cielonegro.org>
+
+	* bitstream.cabal: Bump version to 0.2.0.3
+
+	* Unknown: Fix compilation on GHC 7.6 by adding (Integral α) for
+	each (Bits α),  Reported by Luca Molari.
+
+2013-01-15  PHO  <pho@cielonegro.org>
+
+	* bitstream.cabal: Bump version to 0.2.0.2
+
+	* Unknown: Fix the compilation on GHC 7.4 by adding Show
+	constraint where appropriate,  Patch by Jaap ter Woerds.
+
+2011-08-26  PHO  <pho@cielonegro.org>
+
+	* bitstream.cabal: Bump version to 0.2.0.1
+
+	* Unknown: Fix the compilation on GHC 7.2.1 by adding {-# LANGUAGE
+	BangPatterns #-},  Patch by Mark Wotton.
+
+2011-07-08  PHO  <pho@cielonegro.org>
+
+	* bitstream.cabal: Bump version to 0.2
+
+	* Unknown: Make stream fusion actually work.
+
+	* Unknown: Implement fromBits / toBits
+
+	* Unknown: Strict Bitstreams' bit length should only be a hint,
+	just like stream size.
+
+	* Unknown: Strict Bitstreams should keep bit-length maintained.
+
+	* Unknown: Strict bitstrems should use unstreamPackets instead of
+	hand-written unfoldr-based unstreamers.
diff --git a/Data/Bitstream/Generic.hs b/Data/Bitstream/Generic.hs
--- a/Data/Bitstream/Generic.hs
+++ b/Data/Bitstream/Generic.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE
     BangPatterns
+  , CPP
   , RankNTypes
   , UnicodeSyntax
   #-}
@@ -292,12 +293,19 @@
     ∀v. unstream (stream v) = v
   #-}
 
+#if MIN_VERSION_base(4,7,0)
+-- | /O(n)/ Convert a 'FiniteBits' into a 'Bitstream'.
+fromBits ∷ (Integral β, FiniteBits β, Bitstream α) ⇒ β → α
+{-# INLINE fromBits #-}
+fromBits β = basicFromNBits (finiteBitSize β) β
+#else
 -- | /O(n)/ Convert a 'Bits' into a 'Bitstream'. Note that this
 -- function is undefined for instances of 'Bits' which have no fixed
 -- 'bitSize' (like 'Integer').
 fromBits ∷ (Integral β, Bits β, Bitstream α) ⇒ β → α
 {-# INLINE fromBits #-}
 fromBits β = basicFromNBits (bitSize β) β
+#endif
 
 -- | /O(n)/ Convert the lower 'n' bits of the given 'Bits'. In the
 -- case that more bits are requested than the 'Bits' provides, this
diff --git a/Data/Bitstream/Packet.hs b/Data/Bitstream/Packet.hs
--- a/Data/Bitstream/Packet.hs
+++ b/Data/Bitstream/Packet.hs
@@ -31,7 +31,7 @@
 import Data.Vector.Fusion.Util
 import Data.Word
 import Foreign.Storable
-import Prelude ( Bool(..), Eq(..), Int, Integral, Ord(..), Maybe(..)
+import Prelude ( Bool(..), Eq(..), Int, Integral, Maybe(..)
                , Monad(..), Num(..), Show(..), ($!), error, fromIntegral
                , otherwise
                )
diff --git a/NEWS b/NEWS
deleted file mode 100644
--- a/NEWS
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- org -*-
-#+STARTUP: indent
-#+STARTUP: fnprompt
-#+STARTUP: logdone
-#+OPTIONS: ^:nil
-#+TODO: UNRELEASED(u) | RELEASED(r)
-
-* RELEASED 0.2.0.3
-CLOSED: [2013-10-02 水 21:22]
-- Fix compilation on GHC 7.6 by adding (Integral α) for each (Bits
-  α), reported by Luca Molari.
-
-* RELEASED 0.2.0.2
-CLOSED: [2013-01-15 Tue 18:55]
-- Applied a patch by Jaap ter Woerds:
-  Fix the compilation on GHC 7.4 by adding Show constraint where appropriate.
-- Migrate the repository to GitHub.
-
-* RELEASED bitstream-0.2.0.1
-CLOSED: [2011-08-26 Aug 18:44]
-- Applied a patch by Mark Wotton:
-  Fix the compilation on GHC 7.2.1 by adding ={-# LANGUAGE BangPatterns #-}=.
-
-* RELEASED bistream-0.2
-CLOSED: [2011-07-08 Jul 13:48]
-- bugfix: Make stream fusion actually work
-- Implement fromBits / toBits
-- Strict Bitstreams' bit length should only be a hint, just like stream size.
-- Strict Bitstream should keep bit-length maintained
-- Strict bitstrems should use unstreamPackets instead of hand-written unfoldr-based unstreamers.
diff --git a/bitstream.cabal b/bitstream.cabal
--- a/bitstream.cabal
+++ b/bitstream.cabal
@@ -6,7 +6,7 @@
         fusion. This is like @bytestring@ but stores bits instead of
         bytes.
 
-Version: 0.2.0.3
+Version: 0.2.0.4
 License: PublicDomain
 License-File: COPYING
 Author: PHO <pho at cielonegro dot org>
@@ -21,7 +21,7 @@
 Extra-Source-Files:
     AUTHORS
     COPYING
-    NEWS
+    ChangeLog
 
 Source-Repository head
     Type: git
@@ -57,7 +57,7 @@
     Other-Modules:
         Test.Bitstream.Utils
     Build-Depends:
-        QuickCheck           == 2.5.*,
+        QuickCheck           >= 2.5,
         base                 == 4.*,
         base-unicode-symbols == 0.2.*,
         bytestring           >= 0.9 && < 0.11,
@@ -72,7 +72,7 @@
     Other-Modules:
         Test.Bitstream.Utils
     Build-Depends:
-        QuickCheck           == 2.5.*,
+        QuickCheck           >= 2.5,
         base                 == 4.*,
         base-unicode-symbols == 0.2.*,
         bytestring           >= 0.9 && < 0.11,
