Challenge 2: Shared Behavior, No Common Ancestor — Solution module Loggable def log(message) puts "[LOG] #{message}" end end class Order include Loggable end class Invoice include Loggable end Order.new.log("Order created") Invoice.new.log("Invoice generated") =begin Output: [LOG] Order created [LOG] Invoice generated Notes: - Order and Invoice share no inheritance relationship at all — neither is a subclass of the other, and both ultimately just inherit from Object like every Ruby class does. - Both classes independently include the same Loggable module, and both get an identically-behaving log method as a result. - This is the exact mechanism Chapter 5's Array and Hash rely on to share map/select/reduce via the Enumerable module, despite Array and Hash also having no inheritance relationship to each other. =end