Suggestion: TrueClass and FalseClass inheriting from Boolean (new superclass).
This would make true/false checking easier, like:
unless value.is_a?(Boolean) raise "Non-boolean value" end
Currently we have to check for both classes:
unless value.is_a?(FalseClass) or value.is_a?(TrueClass) raise "Non-boolean value" end
In high-level APIs this would be beneficial, for example in RSpec:
expect(value).to be_a Boolean
Currently, we have to check like this:
expect([TrueClass, FalseClass]).to include value.class
Or another similar workaround.
I would like to provide a patch if this is acceptable.