Immutablization - memoize metaclass info - resolve all _super calls directly - generate optimized constructor - spit out entire class as generated coffeescript Brocket/Base - BUILDALL doesn't do anything yet - BUILDARGS may need to be revisited Meta protocol - attribute get/set/predicate/clear as methods which receive an instance - currently inline only - instance metaclass - could do inside-out objects in JS too - local vs inherited attributes, methods, modifiers, etc. Roles - role summation - method conflicts between roles Class/role construction Brocket.defineClass "MyClass", (B) -> B.subclasses "MyParent" B.override "foo", -> B.before "meth", -> B.around "meth", (orig, ...) -> B.after "meth", -> B.has ... B.method (foo, bar) -> C3 inheritance algorithm - eventually, but multiple inheritance is not so important with roles Something like Moose::Util::MetaRole for applying metaroles Type system - no string types - all types are objects - clone objects on import to avoid coercion on global types? -- make cloning optional somehow? -- have a different import for type libs vs importing into classes? Features I'm not sure about - role exclusion - never used this with Moose, not sure it's worthwhile - attr initializers? - lazy_build - lazy & builder, yes - lazy_build, no