From: matthew@... Date: 2016-11-03T06:46:36+00:00 Subject: [ruby-core:77881] [Ruby trunk Feature#12515] Create "Boolean" superclass of TrueClass / FalseClass Issue #12515 has been updated by Matthew Kerwin. Samuel Williams wrote: > [...] But what evidence do you have to support NOT adding Boolean? I can't think of any good reason why you shouldn't add it. Ignoring most of the "bad" reasons in this thread, how about reiterating this one: If Ruby core were to introduce `class Boolean`, a lot of those 2 million libraries you refer to would break, because they use `module Boolean` and `module` can't re-open a class. * [github search](https://github.com/search?q=language%3ARuby+%22module+Boolean%22&type=Code&utf8=%E2%9C%93) And who knows how many of the `class Boolean` peoples' code would also break if instance methods on their previously-safe classes were suddenly inherited by `TRUE` and `FALSE`? ---------------------------------------- Feature #12515: Create "Boolean" superclass of TrueClass / FalseClass https://bugs.ruby-lang.org/issues/12515#change-61193 * Author: Loren Segal * Status: Rejected * Priority: Normal * Assignee: ---------------------------------------- Since Ruby 2.4 is unifying Bignum/Fixnum into Integer (https://bugs.ruby-lang.org/issues/12005), it seems reasonable to do something similar for TrueClass / FalseClass, and create a proper Boolean hierarchy. The implementation would be fairly straightforward and should be back compat unless someone already has a "Boolean" class at toplevel out there. Given the compatibility implications of Integer, this Boolean proposal is even less intrusive. Sample implementation: ~~~ class Boolean < BasicObject; end class TrueClass < Boolean; end class FalseClass < Boolean; end ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: