minimalist role composition tool
Role composition can be thought of as much more clever and meaningful multiple inheritance. The basics of this implementation of roles is: - If a method is already defined on a class, that method will not be composed in from the role. - If a method that the role "requires" to be implemented is not implemented, role application will fail loudly.