diff --git a/test/Persistence.hs b/test/Persistence.hs
index 9ecb70ecb079494dcb4397868e866b9b6dec8a48..794e9efa32f61adb986a56b854c889cff5f33b1a 100644
--- a/test/Persistence.hs
+++ b/test/Persistence.hs
@@ -52,19 +52,24 @@ tests = testGroup "Persistence"
   , sqlite3DatabaseVoucherPaymentTests
   ]
 
+-- Some dummy values that should be replaced by the use of QuickCheck.
 voucher = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
 fingerprint = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
 
+-- Mock a successful payment.
 paySuccessfully :: IO ()
 paySuccessfully = return ()
 
+-- Mock a failed payment.
 failPayment :: IO ()
 failPayment = throwIO ArbitraryException
 
+-- | Create a group of tests related to voucher payment and redemption.
 makeVoucherPaymentTests
   :: VoucherDatabase d
-  => Text.Text
-  -> IO d
+  => Text.Text           -- ^ A distinctive identifier for this group's label.
+  -> IO d                -- ^ An operation that creates a new, empty voucher
+                         -- database.
   -> TestTree
 makeVoucherPaymentTests label makeDatabase =
   testGroup ("voucher payments (" ++ Text.unpack label ++ ")")
@@ -109,10 +114,11 @@ makeVoucherPaymentTests label makeDatabase =
       assertEqual "redeeming double-paid voucher" (Right ()) redeemResult
   ]
 
-
+-- | Instantiate the persistence tests for the memory backend.
 memoryDatabaseVoucherPaymentTests :: TestTree
 memoryDatabaseVoucherPaymentTests = makeVoucherPaymentTests "memory" memory
 
+-- | Instantiate the persistence tests for the sqlite3 backend.
 sqlite3DatabaseVoucherPaymentTests :: TestTree
 sqlite3DatabaseVoucherPaymentTests =
   makeVoucherPaymentTests "sqlite3" $