diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+haskell-torrent (10000.0.1) unstable; urgency=medium
+
+  * Added showTorrent.
+
+ -- Joey Hess <id@joeyh.name>  Fri, 11 Nov 2016 15:06:46 -0400
+
 haskell-torrent (10000.0.0) unstable; urgency=medium
 
   * Taking over upstream maintenance of this package.
diff --git a/src/Data/Torrent.hs b/src/Data/Torrent.hs
--- a/src/Data/Torrent.hs
+++ b/src/Data/Torrent.hs
@@ -1,3 +1,7 @@
+-- | BitTorrent metainfo files
+--
+-- <http://www.bittorrent.org/beps/bep_0003.html>
+
 {-# LANGUAGE DeriveDataTypeable #-}
 
 module Data.Torrent
@@ -7,6 +11,7 @@
 	, readTorrent
 	, serializeTorrent
 	, torrentSize
+	, showTorrent
 	) where
 
 import Data.BEncode
@@ -115,3 +120,12 @@
 		[ ("length", BInt (fileLength file))
 		, ("path", BList (map BString $ filePath file))
 		]
+
+-- | generates a torrent file
+--
+-- Due to lexographical ordering requirements of BEncoded data, this
+-- should generate the same ByteString that readTorrent read to generate
+-- the Torrent. However, torrent files may contain extensions and
+-- nonstandard fields that prevent that from holding for all torrent files.
+showTorrent :: Torrent -> ByteString
+showTorrent = bPack . serializeTorrent
diff --git a/torrent.cabal b/torrent.cabal
--- a/torrent.cabal
+++ b/torrent.cabal
@@ -1,5 +1,5 @@
 Name: torrent
-Version: 10000.0.0
+Version: 10000.0.1
 Cabal-Version: >= 1.6
 Maintainer: Joey Hess <id@joeyh.name>
 Author: Lemmih <lemmih@gmail.com>
@@ -12,7 +12,7 @@
 Synopsis: BitTorrent file parser and generater
 
 Library
-  GHC-Options: -Wall
+  GHC-Options: -Wall -fno-warn-tabs
   Hs-Source-Dirs: src
   Exposed-Modules:
     Data.Torrent
