diff --git a/path-text-utf8.cabal b/path-text-utf8.cabal
--- a/path-text-utf8.cabal
+++ b/path-text-utf8.cabal
@@ -1,40 +1,40 @@
--- This file has been generated from package.yaml by hpack version 0.19.2.
---
--- see: https://github.com/sol/hpack
+name: path-text-utf8
+version: 0.0.1.0
+category: Filesystem, Text
 
-name:           path-text-utf8
-version:        0.0.0.2
-synopsis:       Read and write UTF-8 text files
+synopsis: Read and write UTF-8 text files
 
-description:    This is a trivial integration of the @path@ and @text@
-                packages, providing convenient functions to read and
-                write UTF-8 text files.
-category:       Filesystem, Text
-homepage:       https://github.com/chris-martin/path-text-utf8#readme
-bug-reports:    https://github.com/chris-martin/path-text-utf8/issues
-author:         Chris Martin <ch.martin@gmail.com>
-maintainer:     Chris Martin <ch.martin@gmail.com>
-license:        Apache-2.0
-license-file:   license.txt
-build-type:     Simple
-cabal-version:  >= 1.10
+description: This is a trivial integration of the @path@ and @text@
+             packages, providing convenient functions to read and
+             write UTF-8 text files.
 
+homepage:    https://github.com/chris-martin/path-text-utf8#readme
+bug-reports: https://github.com/chris-martin/path-text-utf8/issues
+
+author:     Chris Martin <ch.martin@gmail.com>
+maintainer: Chris Martin <ch.martin@gmail.com>
+
+license: Apache-2.0
+license-file: license.txt
+
+build-type: Simple
+cabal-version: >= 1.10
+
 source-repository head
   type: git
   location: https://github.com/chris-martin/path-text-utf8
 
 library
-  hs-source-dirs:
-      src
+  default-language: Haskell2010
+  hs-source-dirs: src
   ghc-options: -Wall
-  build-depends:
-      base >=4.8 && <4.10
-    , bytestring >=0.10 && <0.11
-    , path >=0.5 && <0.6
-    , safe-exceptions >=0.1 && <0.2
-    , text >=1.2 && <1.3
+
   exposed-modules:
       Path.Text.UTF8
-  other-modules:
-      Paths_path_text_utf8
-  default-language: Haskell2010
+
+  build-depends:
+      base            >= 4.7  && < 4.11
+    , bytestring      >= 0.10 && < 0.11
+    , path            >= 0.5  && < 0.7
+    , safe-exceptions >= 0.1  && < 0.2
+    , text            >= 1.2  && < 1.3
diff --git a/src/Path/Text/UTF8.hs b/src/Path/Text/UTF8.hs
--- a/src/Path/Text/UTF8.hs
+++ b/src/Path/Text/UTF8.hs
@@ -15,10 +15,11 @@
   -- * Re-exports
   , IOError
   , UnicodeException (DecodeError)
+  , parseAbsFile
+  , parseRelFile
   ) where
 
 -- base
-import Data.Bifunctor  (first)
 import Data.Either     (Either (..))
 import Data.Functor    ((<$>))
 import System.IO       (IO)
@@ -36,7 +37,7 @@
 import           Data.Text.Encoding.Error (UnicodeException (..))
 
 -- path
-import           Path (Path)
+import           Path (Path, parseAbsFile, parseRelFile)
 import qualified Path
 
 data ReadError
@@ -82,3 +83,7 @@
 tryWriteFile :: Path base Path.File -> Text -> IO (Either WriteError ())
 tryWriteFile path text =
   Exception.tryIO (writeFile path text)
+
+first :: (a -> a') -> Either a b -> Either a' b
+first f (Left x) = Left (f x)
+first _ (Right x) = Right x
