> Hash.with_default(0)
> Hash.with_default{Time.now}
> Hash.with_default{|k| k.to_sym}
> {}.with_default(0)
> {}.with_default{Time.now}
> {}.with_default{|k| k.to_sym}

I like with_default than auto. It describe the behavior more preciously.
auto is too vague to me.