code: def grouped_slice(expr, type, start, size):
      
      weld_obj = WeldObject(encoder_, decoder_)
      weld_obj.update(expr)
      weld_template = """
         map(
             %(vec)s,
             |b: %(type)s| {b.$0, slice(b.$1, i64(%(start)s), i64(%(size)s))}
           )
      """
  
      weld_obj.weld_code = weld_template % {"vec": expr.weld_code,
                                            "type": type,
                                            "start": str(start),
                                            "size": str(size)}
      return weld_obj
docs: Groups the given columns by the corresponding grouping column
      value, and aggregate by summing values.
  
      Args:
          columns (List<WeldObject>): List of columns as WeldObjects
          column_tys (List<str>): List of each column data ty
          grouping_column (WeldObject): Column to group rest of columns by
  
      Returns:
            A WeldObject representing this computation