code: func hasPoints(cur cursors.Cursor) bool {
  	if cur == nil {
  		return false
  	}
  
  	res := false
  	switch cur := cur.(type) {
  	case cursors.IntegerArrayCursor:
  		a := cur.Next()
  		res = a.Len() > 0
  	case cursors.FloatArrayCursor:
  		a := cur.Next()
  		res = a.Len() > 0
  	case cursors.UnsignedArrayCursor:
  		a := cur.Next()
  		res = a.Len() > 0
  	case cursors.BooleanArrayCursor:
  		a := cur.Next()
  		res = a.Len() > 0
  	case cursors.StringArrayCursor:
  		a := cur.Next()
  		res = a.Len() > 0
  	default:
  		panic(fmt.Sprintf("unreachable: %T", cur))
  	}
  	cur.Close()
  	return res
  }
docs: // hasPoints returns true if the next block from cur has data. If cur is not
  // nil, it will be closed.