code: func (a *Array) MakeSlice(s []interface{}) interface{} {
  	slice := reflect.MakeSlice(toReflectType(a), 0, len(s))
  	for _, item := range s {
  		slice = reflect.Append(slice, reflect.ValueOf(item))
  	}
  	return slice.Interface()
  }
docs: // MakeSlice examines the key type from the Array and create a slice with builtin type if possible.
  // The idea is to avoid generating []interface{} and produce more known types.