make push_nil a free function