use nqp::sprintf, Hash.fmt needed special-casing though