diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.4.13.3
+
+* Documentation fix for: `PLATFORM_PATH_FORMAT` promotes platform dependent code [#12](https://github.com/fpco/haskell-filesystem/issues/12)
+
 ## 0.4.13.2
 
 * update `splitDirectories` function [#4](https://github.com/fpco/haskell-filesystem/pull/4)
diff --git a/lib/Filesystem/Path/CurrentOS.hs b/lib/Filesystem/Path/CurrentOS.hs
--- a/lib/Filesystem/Path/CurrentOS.hs
+++ b/lib/Filesystem/Path/CurrentOS.hs
@@ -127,12 +127,20 @@
 -- | Convert a 'F.FilePath' to a platform&#x2010;specific format, suitable
 -- for use with external OS functions.
 --
+-- Note: The type @platformTextFormat@ can change depending upon the underlying
+-- compilation platform. Consider using 'toText' or 'encodeString' instead.
+-- See 'Filesystem.Path.Rules.Rules' for more information.
+--
 -- Since: 0.3
 encode :: F.FilePath -> PLATFORM_PATH_FORMAT
 encode = R.encode currentOS
 
 -- | Convert a 'F.FilePath' from a platform&#x2010;specific format, suitable
 -- for use with external OS functions.
+--
+-- Note: The type @platformTextFormat@ can change depending upon the underlying
+-- compilation platform. Consider using 'fromText' or 'decodeString' instead.
+-- See 'Filesystem.Path.Rules.Rules' for more information.
 --
 -- Since: 0.3
 decode :: PLATFORM_PATH_FORMAT -> F.FilePath
diff --git a/lib/Filesystem/Path/Internal.hs b/lib/Filesystem/Path/Internal.hs
--- a/lib/Filesystem/Path/Internal.hs
+++ b/lib/Filesystem/Path/Internal.hs
@@ -107,6 +107,16 @@
 -- Rules
 -------------------------------------------------------------------------------
 
+-- | The type of @platformFormat@ for 'Rules' is conditionally selected at 
+-- compilation time. As such it is only intended for direct use with external OS
+-- functions and code that expects @platformFormat@ to be stable across platforms
+-- may fail to subsequently compile on a differing platform.
+--
+-- For example: on Windows or OSX @platformFormat@ will be 'T.Text',
+-- and on Linux it will be 'B.ByteString'.
+--
+-- If portability is a concern, restrict usage to functions which do not expose
+-- @platformFormat@ directly.
 data Rules platformFormat = Rules
 	{ rulesName :: T.Text
 	
@@ -117,6 +127,10 @@
 	
 	-- | Split a search path, such as @$PATH@ or @$PYTHONPATH@, into
 	-- a list of 'FilePath's.
+	--
+	-- Note: The type of @platformTextFormat@ can change depending upon the
+	-- underlying compilation platform. Consider using 'splitSearchPathString'
+	-- instead. See 'Rules' for more information.
 	, splitSearchPath :: platformFormat -> [FilePath]
 	
 	-- | splitSearchPathString is like 'splitSearchPath', but takes a string
@@ -156,12 +170,20 @@
 	-- | Convert a 'FilePath' to a platform&#x2010;specific format,
 	-- suitable for use with external OS functions.
 	--
+	-- Note: The type of @platformTextFormat@ can change depending upon the
+	-- underlying compilation platform. Consider using 'toText' or
+	-- 'encodeString' instead. See 'Rules' for more information.
+        --
 	-- Since: 0.3
 	, encode :: FilePath -> platformFormat
 	
 	-- | Convert a 'FilePath' from a platform&#x2010;specific format,
 	-- suitable for use with external OS functions.
 	--
+	-- Note: The type of @platformTextFormat@ can change depending upon the
+	-- underlying compilation platform. Consider using 'fromText' or
+	-- 'decodeString' instead. See 'Rules' for more information.
+        --
 	-- Since: 0.3
 	, decode :: platformFormat -> FilePath
 	
diff --git a/system-filepath.cabal b/system-filepath.cabal
--- a/system-filepath.cabal
+++ b/system-filepath.cabal
@@ -1,5 +1,5 @@
 name: system-filepath
-version: 0.4.13.2
+version: 0.4.13.3
 synopsis: High-level, byte-based file and directory path manipulations
 description: Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/system-filepath>.
 license: MIT
