diff --git a/sets.cabal b/sets.cabal
--- a/sets.cabal
+++ b/sets.cabal
@@ -1,5 +1,5 @@
 Name:                   sets
-Version:                0.0.1.1
+Version:                0.0.2
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                MIT
diff --git a/src/Data/Set/Class.hs b/src/Data/Set/Class.hs
--- a/src/Data/Set/Class.hs
+++ b/src/Data/Set/Class.hs
@@ -83,6 +83,12 @@
 instance HasIntersection s => Commutative (Intersection s) where
   commute = intersection
 
+class HasXUnion s where
+  xunion :: s -> s -> s
+
+instance (HasUnion s, HasIntersection s, HasDifference s) => HasXUnion s where
+  xunion x y = union x y `difference` intersection x y
+
 class HasComplement s where
   complement :: s -> s
 
