It now also generates a function for comparing two roles for equality. If an attribute is nil, that attribute is ignored (or rather counted as equal)