diff --git a/equal-files.cabal b/equal-files.cabal
--- a/equal-files.cabal
+++ b/equal-files.cabal
@@ -1,5 +1,5 @@
 Name:           equal-files
-Version:        0.0.5.1
+Version:        0.0.5.2
 License:        GPL
 License-File:   LICENSE
 Author:         Henning Thielemann <haskell@henning-thielemann.de>
@@ -44,7 +44,7 @@
 Build-Type:     Simple
 
 Source-Repository this
-  Tag:         0.0.5.1
+  Tag:         0.0.5.2
   Type:        darcs
   Location:    http://code.haskell.org/~thielema/equal-files/
 
diff --git a/src/EqualFiles.hs b/src/EqualFiles.hs
--- a/src/EqualFiles.hs
+++ b/src/EqualFiles.hs
@@ -3,8 +3,8 @@
 import qualified Data.ByteString      as B
 import qualified Data.ByteString.Lazy as BL
 
-import System.IO (openBinaryFile, hClose, IOMode(ReadMode), )
-import Control.Exception (bracket, evaluate, )
+import System.IO (IOMode(ReadMode), withBinaryFile, openBinaryFile, hClose, )
+import Control.Exception (evaluate, )
 
 import Data.List (sort, )
 import Data.List.HT (groupBy, )
@@ -12,13 +12,13 @@
 
 
 groupEqualElems :: (Ord key, Ord elem) => [(elem, key)] -> [[key]]
-groupEqualElems xs =
-   map (map snd) (groupBy (equating fst) (sort xs))
+groupEqualElems =
+   map (map snd) . groupBy (equating fst) . sort
 
 {- | Only return sub-lists with more than one element. -}
 clusterEqualElems :: (Ord key, Ord elem) => [(elem, key)] -> [[key]]
-clusterEqualElems xs =
-   filter (not . null . tail) (groupEqualElems xs)
+clusterEqualElems =
+   filter (not . null . tail) . groupEqualElems
 
 {- |
 This version does not close the files,
@@ -48,10 +48,7 @@
 
 readPrefix :: Int -> FilePath -> IO B.ByteString
 readPrefix size fileName =
-   bracket
-      (openBinaryFile fileName ReadMode)
-      hClose
-      (flip B.hGet size)
+   withBinaryFile fileName ReadMode $ flip B.hGet size
 
 clusterWithPreSort :: Int -> [FilePath] -> IO [[FilePath]]
 clusterWithPreSort size fileNames =
