code: func (q *Query) WrapWith(name string) *Query {
  	wrapper := q.New()
  	wrapper.with = q.with
  	q.with = nil
  	wrapper = wrapper.With(name, q)
  	return wrapper
  }
docs: // WrapWith creates new Query and adds to it current query as
  // common table expression with the given name.