self.n_min == other.n_min and self.n_max == other.n_max)
 
     def __ne__(self, other):
-        if not isinstance(other, BaseType):
+        if not isinstance(other, Type):
             return NotImplemented
         else:
             return not (self == other)
 
         if not column:
             raise error.Error("%s table schema lacks %s column"
                               % (table_name, column_name))
+        if column.type != column_type:
+            raise error.Error("%s column in %s table has type \"%s\", "
+                              "expected type \"%s\""
+                              % (column_name, table_name,
+                                 column.type.toEnglish(),
+                                 column_type.toEnglish()))
         new_columns[column_name] = column
     table.columns = new_columns
     return table