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