diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
+Version 0.6.2 released 13 Jun 2016
+
+* Set committer name and email when committing (#19, Phil Ruffwind).
+
+* Fixes for compatibility with ghc 8 (Sergei Trofimovich).
+
 Version 0.6.1 released 27 July 2015
 
 * Create `.git/hooks` directory if missing on initialize
diff --git a/Data/FileStore/Git.hs b/Data/FileStore/Git.hs
--- a/Data/FileStore/Git.hs
+++ b/Data/FileStore/Git.hs
@@ -54,8 +54,13 @@
 -- | Run a git command and return error status, error output, standard output.  The repository
 -- is used as working directory.
 runGitCommand :: FilePath -> String -> [String] -> IO (ExitCode, String, B.ByteString)
-runGitCommand repo command args = do
-  let env = Just [("GIT_DIFF_OPTS","-u100000")]
+runGitCommand = runGitCommandWithEnv []
+
+-- | Run a git command with the given environment and return error status, error output, standard
+-- output.  The repository is used as working directory.
+runGitCommandWithEnv :: [(String, String)] -> FilePath -> String -> [String] -> IO (ExitCode, String, B.ByteString)
+runGitCommandWithEnv givenEnv repo command args = do
+  let env = Just ([("GIT_DIFF_OPTS", "-u100000")] ++ givenEnv)
   (status, err, out) <- runShellCommand repo env "git" (command : args)
   return (status, toString err, out)
 
@@ -89,7 +94,9 @@
 -- no changes.
 gitCommit :: FilePath -> [FilePath] -> Author -> String -> IO ()
 gitCommit repo names author logMsg = do
-  (statusCommit, errCommit, _) <- runGitCommand repo "commit" $ ["--author", authorName author ++ " <" ++
+  let env = [("GIT_COMMITTER_NAME", authorName author),
+             ("GIT_COMMITTER_EMAIL", authorEmail author)]
+  (statusCommit, errCommit, _) <- runGitCommandWithEnv env repo "commit" $ ["--author", authorName author ++ " <" ++
                                     authorEmail author ++ ">", "-m", logMsg] ++ names
   if statusCommit == ExitSuccess
      then return ()
diff --git a/Data/FileStore/Types.hs b/Data/FileStore/Types.hs
--- a/Data/FileStore/Types.hs
+++ b/Data/FileStore/Types.hs
@@ -150,7 +150,7 @@
     initialize     :: IO ()
 
     -- | Save contents in the filestore.
-  , save           :: Contents a
+  , save           :: forall a . Contents a
                    => FilePath          -- Resource to save.
                    -> Author            --  Author of change.
                    -> Description       --  Description of change.
@@ -158,7 +158,7 @@
                    -> IO ()
 
     -- | Retrieve the contents of the named resource.
-  , retrieve       :: Contents a
+  , retrieve       :: forall a . Contents a
                    => FilePath          -- Resource to retrieve.
                    -> Maybe RevisionId  -- @Just@ a particular revision ID,
                                         -- or @Nothing@ for latest
diff --git a/filestore.cabal b/filestore.cabal
--- a/filestore.cabal
+++ b/filestore.cabal
@@ -1,5 +1,5 @@
 Name:                filestore
-Version:             0.6.1
+Version:             0.6.2
 Cabal-Version:       >= 1.10
 Build-type:          Custom
 Synopsis:            Interface for versioning file stores.
@@ -35,8 +35,8 @@
                          filepath >= 1.1 && < 1.5,
                          directory >= 1.0 && < 1.3,
                          parsec >= 2 && < 3.2,
-                         process >= 1.0 && < 1.3,
-                         time >= 1.1 && < 1.6,
+                         process >= 1.0 && < 1.5,
+                         time >= 1.1 && < 1.7,
                          xml >= 1.3 && < 1.4,
                          split >= 0.1 && < 0.3,
                          Diff >= 0.2 && < 0.4,
@@ -57,7 +57,7 @@
       Ghc-Options:       -Wall -fno-warn-unused-do-bind
     else
       Ghc-Options:       -Wall
-    Ghc-Prof-Options:    -auto-all
+    Ghc-Prof-Options:    -fprof-auto-exported
 
 Test-suite test-filestore
     Type:           exitcode-stdio-1.0
@@ -65,7 +65,7 @@
     Main-is:        Tests.hs
     Default-Language:  Haskell98
     Build-depends:  base >= 4 && < 5,
-                    HUnit >= 1.2 && < 1.3,
+                    HUnit >= 1.2 && < 1.4,
                     mtl,
                     time,
                     Diff >= 0.2 && < 0.4,
