diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,8 +1,8 @@
 # Changelog for path-like
 
-## (v0.1.2.0)
+## (v0.2.0.0)
 
-* Change to ConstraintKinds style.
+* Revert ConstraintKinds mess.
 
 ## (v0.1.1.0)
 
diff --git a/path-like.cabal b/path-like.cabal
--- a/path-like.cabal
+++ b/path-like.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           path-like
-version:        0.1.2.0
+version:        0.2.0.0
 synopsis:       PathLike, FileLike and DirLike type classes for the Path library.
 description:    Type classes for the Path library. Exports PathLike, FileLike and DirLike classes so that stricter types may be used as Paths.
 category:       Filesystem
diff --git a/src/Path/Like.hs b/src/Path/Like.hs
--- a/src/Path/Like.hs
+++ b/src/Path/Like.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE ConstraintKinds        #-}
 {-# LANGUAGE FlexibleContexts       #-}
 {-# LANGUAGE FlexibleInstances      #-}
 {-# LANGUAGE FunctionalDependencies #-}
@@ -15,10 +14,8 @@
 
 module Path.Like (
   PathLike(..)
-, FileLike
-, DirLike
-, toFile
-, toDir
+, FileLike(..)
+, DirLike(..)
 , (/>)
 ) where
 
@@ -28,14 +25,21 @@
 class PathLike b t a | a -> b, a -> t where
   toPath :: a -> Path b t
 
-type FileLike b a = PathLike b File a
-type DirLike b a = PathLike b Dir a
+-- | Class representing a type `a` that can be compiled down to a `Path b File`.
+class PathLike b File a => FileLike b a where
+  toFile :: a -> Path b File
+  toFile = toPath
 
-toFile :: FileLike b a => a -> Path b File
-toFile = toPath
+-- | Class repreenting a type `a` that can be compiled down to a `Path b Dir`.
+class PathLike b Dir a => DirLike b a where
+  toDir :: a -> Path b Dir
+  toDir = toPath
 
-toDir :: DirLike b a  => a -> Path b Dir
-toDir = toPath
+instance PathLike b t (Path b t) where
+  toPath = id
+
+instance FileLike b (Path b File)
+instance DirLike b (Path b Dir)
 
 -- | Like `Path.</>`, but works for any `DirLike` and relative `FileLike` to produce a concrete `Path`.
 (/>) :: (DirLike b a, FileLike Rel c) => a -> c -> Path b File
