diff --git a/Data/Constraint.hs b/Data/Constraint.hs
--- a/Data/Constraint.hs
+++ b/Data/Constraint.hs
@@ -37,7 +37,7 @@
   , weaken1, weaken2, contract
   , (&&&), (***)
   , trans, refl
-  , top
+  , top, bottom
   -- * Reflection
   , Class(..)
   , (:=>)(..)
@@ -130,6 +130,22 @@
 top :: a :- ()
 top = Sub Dict
 
+type family Ex (a :: *) (c :: Constraint) :: Constraint
+type instance Ex () c = ()
+type instance Ex Bool c = c
+
+falso :: (() ~ a) :- Ex a c
+falso = Sub Dict
+
+-- |
+-- A bad type coercion lets you derive any type you want.
+--
+-- These are the initial arrows of the category and (() ~ Bool) is the initial object
+--
+-- This demonstrates the law of classical logical <http://en.wikipedia.org/wiki/Principle_of_explosion ex falso quodlibet>
+bottom :: (() ~ Bool) :- c
+bottom = thing
+
 -- | Reify the relationship between a class and its superclass constraints as a class
 class Class b h | h -> b where
   cls :: h :- b
@@ -326,3 +342,4 @@
 instance a => Monoid (Dict a) where
   mappend Dict Dict = Dict
   mempty = Dict
+
diff --git a/constraints.cabal b/constraints.cabal
--- a/constraints.cabal
+++ b/constraints.cabal
@@ -1,6 +1,6 @@
 name:          constraints
 category:      Constraints
-version:       0.3.3
+version:       0.3.4
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
