diff --git a/lib/veritas/attribute.rb b/lib/veritas/attribute.rb
index <HASH>..<HASH> 100644
--- a/lib/veritas/attribute.rb
+++ b/lib/veritas/attribute.rb
@@ -48,7 +48,7 @@ module Veritas
     end
 
     def joinable?(other)
-      !(self.class <=> other.class).nil?
+      kind_of?(other.class) || other.kind_of?(self.class)
     end
 
     def <=>(other)
diff --git a/lib/veritas/attribute/comparable.rb b/lib/veritas/attribute/comparable.rb
index <HASH>..<HASH> 100644
--- a/lib/veritas/attribute/comparable.rb
+++ b/lib/veritas/attribute/comparable.rb
@@ -5,7 +5,7 @@ module Veritas
 
       # TODO: figure out how to dry this up with Attribute#joinable?
       def comparable?(other)
-        !(self.class <=> other.class).nil?
+        kind_of?(other.class) || other.kind_of?(self.class)
       end
 
       def gte(other)
Replace usage of Module#<=> with Object#kind_of?