require 'traits' # # a depth first search path is used to find defaults # class C has 'a' => 42 end class K < C; end k = K::new p k.a # # once assigned this is short-circuited # k.a = 'forty-two' p k.a