diff --git a/credential-store.cabal b/credential-store.cabal
--- a/credential-store.cabal
+++ b/credential-store.cabal
@@ -1,5 +1,5 @@
 name:                credential-store
-version:             0.1.0.0
+version:             0.1.1
 synopsis:            Library to access secure credential storage providers
 description:
   Cross-platform library for storing secrets.
diff --git a/src/System/CredentialStore.hs b/src/System/CredentialStore.hs
--- a/src/System/CredentialStore.hs
+++ b/src/System/CredentialStore.hs
@@ -1,10 +1,33 @@
 {-# Language CPP #-}
+{-|
+Cross-platform library to access system-specific credential store.
+
+Uses Windows CredRead/CredWrite/CredDelete API on Windows,
+DBus Secret Store API with gnome-keyring or kwallet as backends on Unix.
+MacOS is not supported yet.
+
+Example usage:
+
+@
+withCredentialStore $ \store -> do
+    putCredential store credentialName credentialValue
+    v <- getCredential store credentialName
+    deleteCredential store credentialName
+@
+-}
 module System.CredentialStore
-    ( module X
+    (
+    -- * Types
+      CredentialStore
+    -- * Functions
+    , getCredential
+    , putCredential
+    , deleteCredential
+    , withCredentialStore
     ) where
 
 #ifdef WINBUILD
-import System.CredentialStore.Windows as X
+import System.CredentialStore.Windows
 #else
-import System.CredentialStore.DBusSecretService as X
+import System.CredentialStore.DBusSecretService
 #endif
diff --git a/src/System/CredentialStore/DBusSecretService.hs b/src/System/CredentialStore/DBusSecretService.hs
--- a/src/System/CredentialStore/DBusSecretService.hs
+++ b/src/System/CredentialStore/DBusSecretService.hs
@@ -24,7 +24,7 @@
 import qualified Data.ByteString as BS
 import qualified Data.Map.Strict as M
 
--- |Abstract context for credential store communications
+-- |Abstract context for credential store communications.
 data CredentialStore = CredentialStore
     { csClient :: Client
     , csSession :: ObjectPath
@@ -86,7 +86,7 @@
     }
 
 -- |Open credential store and execute function passing it as parameter.
--- Store is closed even in presence of exceptions
+-- Store is closed even in presence of exceptions.
 withCredentialStore :: (CredentialStore -> IO a) -> IO a
 withCredentialStore = bracket openStore closeStore
     where
@@ -119,7 +119,7 @@
 
     closeStore = disconnect . csClient
 
--- |Read named credential from store
+-- |Read named credential from store. Returns 'Nothing' if credential was not found.
 getCredential :: ByteArray ba => CredentialStore -> String -> IO (Maybe ba)
 getCredential store@CredentialStore{..} name = do
     items <- findCredentials store name
@@ -144,7 +144,7 @@
     credData (_, _, v, _) = v
     credParam (_, p, _, _) = p
 
--- |Write named credential to store, overwriting existing one
+-- |Write named credential to store, overwriting existing one.
 putCredential :: ByteArray ba => CredentialStore -> String -> ba -> IO ()
 putCredential CredentialStore{..} name value = do
     (cred, iv) <- encryptCredential csCipher value
@@ -169,7 +169,7 @@
         [ path, _ ] | Just p <- fromVariant path -> when (p == noObject) $ throw (clientError "prompt required")
         body -> throw $ clientError $ "invalid CreateItem response" ++ show body
 
--- |Delete named credential from store
+-- |Delete named credential from store.
 deleteCredential :: CredentialStore -> String -> IO ()
 deleteCredential store@CredentialStore{..} name = do
     items <- findCredentials store name
