code: func ParseForm(raw url.Values) Form {
  	result := make(Form, len(raw))
  
  	for k, v := range raw {
  		if len(v) == 0 {
  			continue
  		}
  
  		fields := strings.FieldsFunc(k, fieldsExtractor)
  
  		pfield, cfield := "", ""
  		form := result
  		for i := range fields {
  			pfield = cfield
  			cfield = fields[i]
  
  			if index, err := strconv.Atoi(cfield); err == nil {
  				if i == len(fields)-1 {
  					form.assigns(pfield, "", index, v[0])
  				} else {
  					form.assigns(pfield, "", index, nil)
  					form = form[pfield][index].(Form)
  					cfield = "" // set cfield empty, so unnecesary nesting wont be created in the next loop
  				}
  			} else {
  				if i == len(fields)-1 {
  					form.assigns(pfield, cfield, -1, v)
  				} else {
  					form.assigns(pfield, cfield, -1, nil)
  					if pfield != "" {
  						index := len(form[pfield]) - 1
  						form = form[pfield][index].(Form)
  					}
  				}
  			}
  		}
  	}
  
  	return result
  }
docs: // ParseForm form from url values.