diff --git a/Git/Utils.hs b/Git/Utils.hs
--- a/Git/Utils.hs
+++ b/Git/Utils.hs
@@ -61,7 +61,7 @@
 parseOidTextL :: Monad m => Text -> m OidTextL
 parseOidTextL = return . OidTextL . TL.fromStrict
 
-treeOid :: Repository m => Tree m -> m Text
+treeOid :: Repository m => Tree m (TreeKind m) -> m Text
 treeOid t = renderObjOid <$> writeTree t
 
 createBlobUtf8 :: Repository m => Text -> m (BlobOid m)
@@ -104,7 +104,8 @@
                  Left x  -> error $ "Invalid path: " ++ T.unpack x
                  Right y -> y
 
-treeBlobEntries :: Repository m => Tree m -> m [(FilePath,TreeEntry m)]
+treeBlobEntries :: Repository m
+                => Tree m (TreeKind m) -> m [(FilePath,TreeEntry m)]
 treeBlobEntries tree =
     mconcat <$> traverseEntries go tree
   where
@@ -177,7 +178,7 @@
   where
     doCopyTreeEntry :: (Repository m, Repository (t m), MonadTrans t)
                     => HashSet Text -> (FilePath, TreeEntry m)
-                    -> TreeT (t m) (HashSet Text)
+                    -> RepositoryTreeT (t m) (HashSet Text)
     doCopyTreeEntry needed' (_,TreeEntry {}) = return needed'
     doCopyTreeEntry needed' (fp,ent) = do
         (ent2,needed'') <- lift $ copyTreeEntry ent needed'
@@ -320,7 +321,7 @@
 getCommitParents :: Repository m => Commit m -> m [Commit m]
 getCommitParents = traverse resolveCommitRef . commitParents
 
-resolveRefTree :: Repository m => Text -> m (Tree m)
+resolveRefTree :: Repository m => Text -> m (Tree m (TreeKind m))
 resolveRefTree refName = do
     c <- resolveRef refName
     case c of
diff --git a/gitlib-utils.cabal b/gitlib-utils.cabal
--- a/gitlib-utils.cabal
+++ b/gitlib-utils.cabal
@@ -1,5 +1,5 @@
 Name:                gitlib-utils
-Version:             1.1.1
+Version:             1.2.0
 Synopsis:            Generic utility functions for working with Git repositories
 License-file:        LICENSE
 License:             MIT
