On 14 Mar 2012, at 02:14, Caleb Cushing wrote:

> Why are the options for using MX::Traits either
> 
> Class->with_traits(...) or Class->new_with_traits({ traits => ... });
> 
> why can't we have just a Class->new({ _traits => ... })?

Because then ->new returns an entirely different class to the one you asked for.

Which breaks people's expectations of what ->new does.

Also - this is hard to make work 'right', as what happens with classes which 
implement their own BUILDARGS / BUILD to do custom argument processing? How 
would we hook into that to get { _traits } out before construction, etc..

Cheers
t0m

Reply via email to