require 'traits'
#
# all behaviours work within class scope (metal/singleton-class) to define
# class methods
#
class C
  class << self
    traits 'a' => 4, 'b' => 2
  end
end

print C::a, C::b, "\n"

#
# singleton methods can even be defined on objects
#

class << (a = %w[dog cat ostrich])
  has 'category' => 'pets' 
end
p a.category

#
# and modules
#
module Mmmm
  class << self; trait 'good' => 'bacon'; end 
end

p Mmmm.good
