code: func (ns *Namespace) Last(limit interface{}, seq interface{}) (interface{}, error) {
  	if limit == nil || seq == nil {
  		return nil, errors.New("both limit and seq must be provided")
  	}
  
  	limitv, err := cast.ToIntE(limit)
  	if err != nil {
  		return nil, err
  	}
  
  	if limitv < 1 {
  		return nil, errors.New("can't return negative/empty count of items from sequence")
  	}
  
  	seqv := reflect.ValueOf(seq)
  	seqv, isNil := indirect(seqv)
  	if isNil {
  		return nil, errors.New("can't iterate over a nil value")
  	}
  
  	switch seqv.Kind() {
  	case reflect.Array, reflect.Slice, reflect.String:
  		// okay
  	default:
  		return nil, errors.New("can't iterate over " + reflect.ValueOf(seq).Type().String())
  	}
  
  	if limitv > seqv.Len() {
  		limitv = seqv.Len()
  	}
  
  	return seqv.Slice(seqv.Len()-limitv, seqv.Len()).Interface(), nil
  }
docs: // Last returns the last N items in a rangeable list.