code: func interpolationFuncBase64Gzip() ast.Function {
  	return ast.Function{
  		ArgTypes:   []ast.Type{ast.TypeString},
  		ReturnType: ast.TypeString,
  		Callback: func(args []interface{}) (interface{}, error) {
  			s := args[0].(string)
  
  			var b bytes.Buffer
  			gz := gzip.NewWriter(&b)
  			if _, err := gz.Write([]byte(s)); err != nil {
  				return "", fmt.Errorf("failed to write gzip raw data: '%s'", s)
  			}
  			if err := gz.Flush(); err != nil {
  				return "", fmt.Errorf("failed to flush gzip writer: '%s'", s)
  			}
  			if err := gz.Close(); err != nil {
  				return "", fmt.Errorf("failed to close gzip writer: '%s'", s)
  			}
  
  			return base64.StdEncoding.EncodeToString(b.Bytes()), nil
  		},
  	}
  }
docs: // interpolationFuncBase64Gzip implements the "gzip" function that allows gzip
  // compression encoding the result using base64