diff --git a/src/Data/RelativeValidity.hs b/src/Data/RelativeValidity.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/RelativeValidity.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+
+{-| Relative validity
+ -}
+
+module Data.RelativeValidity
+    ( RelativeValidity(..)
+    ) where
+
+
+-- | A class of types that have additional invariants defined upon them
+-- that aren't enforced by the type system
+--
+-- If there is a @Validity a@ instance as well, then @a `isValidFor` b@
+-- should imply @isValid a@ for any @b@.
+--
+-- If there is a @Validity b@ instance as well, then @a `isValidFor` b@
+-- should imply @isValid b@ for any @a@.
+class RelativeValidity a b where
+    isValidFor :: a -> b -> Bool
+
diff --git a/validity.cabal b/validity.cabal
--- a/validity.cabal
+++ b/validity.cabal
@@ -1,5 +1,5 @@
 name:                validity
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            Validity typeclass
 description:         Please see README.md
 homepage:            https://github.com/NorfairKing/validity#readme
@@ -16,6 +16,7 @@
 library
   hs-source-dirs:      src
   exposed-modules:     Data.Validity
+                     , Data.RelativeValidity
   build-depends:       base >= 4.7 && < 5
   default-language:    Haskell2010
 
