code: func toSliceType(i interface{}) (reflect.Type, error) {
  	t := reflect.TypeOf(i)
  	if t.Kind() != reflect.Ptr {
  		// If it's a slice, return a more helpful error message
  		if t.Kind() == reflect.Slice {
  			return nil, fmt.Errorf("gorp: cannot SELECT into a non-pointer slice: %v", t)
  		}
  		return nil, nil
  	}
  	if t = t.Elem(); t.Kind() != reflect.Slice {
  		return nil, nil
  	}
  	return t.Elem(), nil
  }
docs: // toSliceType returns the element type of the given object, if the object is a
  // "*[]*Element" or "*[]Element". If not, returns nil.
  // err is returned if the user was trying to pass a pointer-to-slice but failed.