diff --git a/src/Data/Url.hs b/src/Data/Url.hs
--- a/src/Data/Url.hs
+++ b/src/Data/Url.hs
@@ -6,6 +6,7 @@
   , TypeSynonymInstances
   , UndecidableInstances
   , MultiParamTypeClasses
+  , FunctionalDependencies
   #-}
 
 module Data.Url where
@@ -132,7 +133,7 @@
 
 -- | Convenience typeclass for symbolic, stringless routes - make an instance
 -- for your own data type to use your constructors as route-referencing symbols.
-class ToLocation sym base type' where
+class ToLocation sym base type' | sym -> base type' where
   toLocation :: MonadThrow m => sym -> m (Location base type')
 
 
diff --git a/urlpath.cabal b/urlpath.cabal
--- a/urlpath.cabal
+++ b/urlpath.cabal
@@ -1,5 +1,5 @@
 Name:                   urlpath
-Version:                4.0.0.1
+Version:                4.1.0
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                MIT
