code: func structured(args abi.Arguments) bool {
  	if len(args) < 2 {
  		return false
  	}
  	exists := make(map[string]bool)
  	for _, out := range args {
  		// If the name is anonymous, we can't organize into a struct
  		if out.Name == "" {
  			return false
  		}
  		// If the field name is empty when normalized or collides (var, Var, _var, _Var),
  		// we can't organize into a struct
  		field := capitalise(out.Name)
  		if field == "" || exists[field] {
  			return false
  		}
  		exists[field] = true
  	}
  	return true
  }
docs: // structured checks whether a list of ABI data types has enough information to
  // operate through a proper Go struct or if flat returns are needed.