kumi 0.0.26 → 0.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/CLAUDE.md +4 -0
  4. data/README.md +17 -8
  5. data/data/functions/core/conversion.yaml +32 -0
  6. data/data/kernels/javascript/core/coercion.yaml +20 -0
  7. data/data/kernels/ruby/core/coercion.yaml +20 -0
  8. data/docs/ARCHITECTURE.md +277 -0
  9. data/docs/DEVELOPMENT.md +62 -0
  10. data/docs/FUNCTIONS.md +955 -0
  11. data/docs/SYNTAX.md +8 -0
  12. data/docs/VSCODE_EXTENSION.md +114 -0
  13. data/docs/functions-reference.json +1821 -0
  14. data/golden/array_element/expected/schema_ruby.rb +1 -1
  15. data/golden/array_index/expected/schema_ruby.rb +1 -1
  16. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  17. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  18. data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
  19. data/golden/decimal_explicit/expected/ast.txt +38 -0
  20. data/golden/decimal_explicit/expected/input_plan.txt +3 -0
  21. data/golden/decimal_explicit/expected/lir_00_unoptimized.txt +30 -0
  22. data/golden/decimal_explicit/expected/lir_01_hoist_scalar_references.txt +30 -0
  23. data/golden/decimal_explicit/expected/lir_02_inlined.txt +44 -0
  24. data/golden/decimal_explicit/expected/lir_03_cse.txt +40 -0
  25. data/golden/decimal_explicit/expected/lir_04_1_loop_fusion.txt +40 -0
  26. data/golden/decimal_explicit/expected/lir_04_loop_invcm.txt +40 -0
  27. data/golden/decimal_explicit/expected/lir_06_const_prop.txt +40 -0
  28. data/golden/decimal_explicit/expected/nast.txt +30 -0
  29. data/golden/decimal_explicit/expected/schema_javascript.mjs +31 -0
  30. data/golden/decimal_explicit/expected/schema_ruby.rb +57 -0
  31. data/golden/decimal_explicit/expected/snast.txt +30 -0
  32. data/golden/decimal_explicit/expected.json +1 -0
  33. data/golden/decimal_explicit/input.json +5 -0
  34. data/golden/decimal_explicit/schema.kumi +14 -0
  35. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  36. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
  37. data/golden/function_overload/expected/schema_ruby.rb +1 -1
  38. data/golden/game_of_life/expected/schema_ruby.rb +1 -1
  39. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  40. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  41. data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
  42. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  43. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  44. data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
  45. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  46. data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
  47. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  48. data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
  49. data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
  50. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  51. data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
  52. data/golden/roll/expected/schema_ruby.rb +1 -1
  53. data/golden/shift/expected/schema_ruby.rb +1 -1
  54. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  55. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  56. data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
  57. data/golden/tuples/expected/schema_ruby.rb +1 -1
  58. data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
  59. data/golden/us_tax_2024/expected/schema_ruby.rb +1 -1
  60. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  61. data/lib/kumi/configuration.rb +6 -0
  62. data/lib/kumi/core/input/type_matcher.rb +8 -1
  63. data/lib/kumi/core/ruby_parser/input_builder.rb +2 -2
  64. data/lib/kumi/core/types/normalizer.rb +1 -0
  65. data/lib/kumi/core/types/validator.rb +2 -2
  66. data/lib/kumi/core/types.rb +2 -2
  67. data/lib/kumi/dev/golden/reporter.rb +9 -0
  68. data/lib/kumi/dev/golden/result.rb +3 -1
  69. data/lib/kumi/dev/golden/runtime_test.rb +25 -0
  70. data/lib/kumi/dev/golden/suite.rb +4 -4
  71. data/lib/kumi/dev/golden/value_normalizer.rb +80 -0
  72. data/lib/kumi/dev/golden.rb +21 -12
  73. data/lib/kumi/doc_generator/formatters/json.rb +39 -0
  74. data/lib/kumi/doc_generator/formatters/markdown.rb +175 -0
  75. data/lib/kumi/doc_generator/loader.rb +37 -0
  76. data/lib/kumi/doc_generator/merger.rb +54 -0
  77. data/lib/kumi/doc_generator.rb +4 -0
  78. data/lib/kumi/version.rb +1 -1
  79. data/vscode-extension/.gitignore +4 -0
  80. data/vscode-extension/README.md +59 -0
  81. data/vscode-extension/TESTING.md +151 -0
  82. data/vscode-extension/package.json +51 -0
  83. data/vscode-extension/src/extension.ts +295 -0
  84. data/vscode-extension/tsconfig.json +15 -0
  85. metadata +37 -1
@@ -0,0 +1,1821 @@
1
+ {
2
+ "any": {
3
+ "id": "agg.any",
4
+ "kind": "reduce",
5
+ "arity": 1,
6
+ "params": [
7
+ {
8
+ "name": "source_value"
9
+ }
10
+ ],
11
+ "kernels": {
12
+ "ruby": "any:ruby:v1"
13
+ },
14
+ "dtype": {
15
+ "rule": "scalar",
16
+ "kind": "boolean"
17
+ },
18
+ "aliases": [
19
+ "any",
20
+ "any?"
21
+ ],
22
+ "reduction_strategy": null
23
+ },
24
+ "any?": {
25
+ "id": "agg.any",
26
+ "kind": "reduce",
27
+ "arity": 1,
28
+ "params": [
29
+ {
30
+ "name": "source_value"
31
+ }
32
+ ],
33
+ "kernels": {
34
+ "ruby": "any:ruby:v1"
35
+ },
36
+ "dtype": {
37
+ "rule": "scalar",
38
+ "kind": "boolean"
39
+ },
40
+ "aliases": [
41
+ "any",
42
+ "any?"
43
+ ],
44
+ "reduction_strategy": null
45
+ },
46
+ "all": {
47
+ "id": "agg.all",
48
+ "kind": "reduce",
49
+ "arity": 1,
50
+ "params": [
51
+ {
52
+ "name": "source_value"
53
+ }
54
+ ],
55
+ "kernels": {
56
+ "ruby": "all:ruby:v1"
57
+ },
58
+ "dtype": {
59
+ "rule": "scalar",
60
+ "kind": "boolean"
61
+ },
62
+ "aliases": [
63
+ "all",
64
+ "all?"
65
+ ],
66
+ "reduction_strategy": null
67
+ },
68
+ "all?": {
69
+ "id": "agg.all",
70
+ "kind": "reduce",
71
+ "arity": 1,
72
+ "params": [
73
+ {
74
+ "name": "source_value"
75
+ }
76
+ ],
77
+ "kernels": {
78
+ "ruby": "all:ruby:v1"
79
+ },
80
+ "dtype": {
81
+ "rule": "scalar",
82
+ "kind": "boolean"
83
+ },
84
+ "aliases": [
85
+ "all",
86
+ "all?"
87
+ ],
88
+ "reduction_strategy": null
89
+ },
90
+ "sum": {
91
+ "id": "agg.sum",
92
+ "kind": "reduce",
93
+ "arity": 1,
94
+ "params": [
95
+ {
96
+ "name": "source_value"
97
+ }
98
+ ],
99
+ "kernels": {
100
+ "ruby": "agg.sum:ruby:v1"
101
+ },
102
+ "dtype": {
103
+ "rule": "same_as",
104
+ "param": "source_value"
105
+ },
106
+ "aliases": [
107
+ "sum"
108
+ ],
109
+ "reduction_strategy": "identity"
110
+ },
111
+ "count": {
112
+ "id": "agg.count",
113
+ "kind": "reduce",
114
+ "arity": 1,
115
+ "params": [
116
+ {
117
+ "name": "source_value"
118
+ }
119
+ ],
120
+ "kernels": {
121
+ "ruby": "agg.count:ruby:v1"
122
+ },
123
+ "dtype": {
124
+ "rule": "scalar",
125
+ "kind": "integer"
126
+ },
127
+ "aliases": [
128
+ "count"
129
+ ],
130
+ "reduction_strategy": "identity"
131
+ },
132
+ "min": {
133
+ "id": "agg.min",
134
+ "kind": "reduce",
135
+ "arity": 1,
136
+ "params": [
137
+ {
138
+ "name": "source_value"
139
+ }
140
+ ],
141
+ "kernels": {
142
+ "ruby": "agg.min:ruby:v1"
143
+ },
144
+ "dtype": {
145
+ "rule": "element_of",
146
+ "param": "source_value"
147
+ },
148
+ "aliases": [
149
+ "min"
150
+ ],
151
+ "reduction_strategy": "first_element"
152
+ },
153
+ "max": {
154
+ "id": "agg.max",
155
+ "kind": "reduce",
156
+ "arity": 1,
157
+ "params": [
158
+ {
159
+ "name": "source_value"
160
+ }
161
+ ],
162
+ "kernels": {
163
+ "ruby": "agg.max:ruby:v1"
164
+ },
165
+ "dtype": {
166
+ "rule": "element_of",
167
+ "param": "source_value"
168
+ },
169
+ "aliases": [
170
+ "max"
171
+ ],
172
+ "reduction_strategy": "first_element"
173
+ },
174
+ "mean": {
175
+ "id": "agg.mean",
176
+ "kind": "reduce",
177
+ "arity": 1,
178
+ "params": [
179
+ {
180
+ "name": "source_value"
181
+ }
182
+ ],
183
+ "kernels": {},
184
+ "dtype": {
185
+ "rule": "scalar",
186
+ "kind": "float"
187
+ },
188
+ "aliases": [
189
+ "mean",
190
+ "avg"
191
+ ],
192
+ "reduction_strategy": null
193
+ },
194
+ "avg": {
195
+ "id": "agg.mean",
196
+ "kind": "reduce",
197
+ "arity": 1,
198
+ "params": [
199
+ {
200
+ "name": "source_value"
201
+ }
202
+ ],
203
+ "kernels": {},
204
+ "dtype": {
205
+ "rule": "scalar",
206
+ "kind": "float"
207
+ },
208
+ "aliases": [
209
+ "mean",
210
+ "avg"
211
+ ],
212
+ "reduction_strategy": null
213
+ },
214
+ "sum_if": {
215
+ "id": "agg.sum_if",
216
+ "kind": "reduce",
217
+ "arity": 2,
218
+ "params": [
219
+ {
220
+ "name": "source_value"
221
+ },
222
+ {
223
+ "name": "condition"
224
+ }
225
+ ],
226
+ "kernels": {},
227
+ "dtype": {
228
+ "rule": "same_as",
229
+ "param": "source_value"
230
+ },
231
+ "aliases": [
232
+ "sum_if"
233
+ ],
234
+ "reduction_strategy": null
235
+ },
236
+ "count_if": {
237
+ "id": "agg.count_if",
238
+ "kind": "reduce",
239
+ "arity": 2,
240
+ "params": [
241
+ {
242
+ "name": "condition"
243
+ },
244
+ {
245
+ "name": "source_value"
246
+ }
247
+ ],
248
+ "kernels": {},
249
+ "dtype": {
250
+ "rule": "scalar",
251
+ "kind": "integer"
252
+ },
253
+ "aliases": [
254
+ "count_if"
255
+ ],
256
+ "reduction_strategy": null
257
+ },
258
+ "avg_if": {
259
+ "id": "agg.mean_if",
260
+ "kind": "reduce",
261
+ "arity": 2,
262
+ "params": [
263
+ {
264
+ "name": "source_value"
265
+ },
266
+ {
267
+ "name": "condition"
268
+ }
269
+ ],
270
+ "kernels": {},
271
+ "dtype": {
272
+ "rule": "scalar",
273
+ "kind": "float"
274
+ },
275
+ "aliases": [
276
+ "avg_if",
277
+ "mean_if"
278
+ ],
279
+ "reduction_strategy": null
280
+ },
281
+ "mean_if": {
282
+ "id": "agg.mean_if",
283
+ "kind": "reduce",
284
+ "arity": 2,
285
+ "params": [
286
+ {
287
+ "name": "source_value"
288
+ },
289
+ {
290
+ "name": "condition"
291
+ }
292
+ ],
293
+ "kernels": {},
294
+ "dtype": {
295
+ "rule": "scalar",
296
+ "kind": "float"
297
+ },
298
+ "aliases": [
299
+ "avg_if",
300
+ "mean_if"
301
+ ],
302
+ "reduction_strategy": null
303
+ },
304
+ "join": {
305
+ "id": "agg.join",
306
+ "kind": "reduce",
307
+ "arity": 1,
308
+ "params": [
309
+ {
310
+ "name": "source_value",
311
+ "dtype": "string"
312
+ }
313
+ ],
314
+ "kernels": {
315
+ "ruby": "agg.join:ruby:v1"
316
+ },
317
+ "dtype": {
318
+ "rule": "scalar",
319
+ "kind": "string"
320
+ },
321
+ "aliases": [
322
+ "join"
323
+ ],
324
+ "reduction_strategy": "first_element"
325
+ },
326
+ "abs": {
327
+ "id": "core.abs",
328
+ "kind": "elementwise",
329
+ "arity": 1,
330
+ "params": [
331
+ {
332
+ "name": "number"
333
+ }
334
+ ],
335
+ "kernels": {
336
+ "ruby": "abs:ruby:v1"
337
+ },
338
+ "dtype": {
339
+ "rule": "same_as",
340
+ "param": "number"
341
+ },
342
+ "aliases": [
343
+ "abs"
344
+ ],
345
+ "reduction_strategy": null
346
+ },
347
+ "add": {
348
+ "id": "core.add",
349
+ "kind": "elementwise",
350
+ "arity": 2,
351
+ "params": [
352
+ {
353
+ "name": "left_operand"
354
+ },
355
+ {
356
+ "name": "right_operand"
357
+ }
358
+ ],
359
+ "kernels": {
360
+ "ruby": "add:ruby:v1"
361
+ },
362
+ "dtype": {
363
+ "rule": "promote",
364
+ "params": [
365
+ "left_operand",
366
+ "right_operand"
367
+ ]
368
+ },
369
+ "aliases": [
370
+ "add"
371
+ ],
372
+ "reduction_strategy": null
373
+ },
374
+ "sub": {
375
+ "id": "core.sub",
376
+ "kind": "elementwise",
377
+ "arity": 2,
378
+ "params": [
379
+ {
380
+ "name": "left_operand"
381
+ },
382
+ {
383
+ "name": "right_operand"
384
+ }
385
+ ],
386
+ "kernels": {
387
+ "ruby": "sub:ruby:v1"
388
+ },
389
+ "dtype": {
390
+ "rule": "promote",
391
+ "params": [
392
+ "left_operand",
393
+ "right_operand"
394
+ ]
395
+ },
396
+ "aliases": [
397
+ "sub",
398
+ "subtract"
399
+ ],
400
+ "reduction_strategy": null
401
+ },
402
+ "subtract": {
403
+ "id": "core.sub",
404
+ "kind": "elementwise",
405
+ "arity": 2,
406
+ "params": [
407
+ {
408
+ "name": "left_operand"
409
+ },
410
+ {
411
+ "name": "right_operand"
412
+ }
413
+ ],
414
+ "kernels": {
415
+ "ruby": "sub:ruby:v1"
416
+ },
417
+ "dtype": {
418
+ "rule": "promote",
419
+ "params": [
420
+ "left_operand",
421
+ "right_operand"
422
+ ]
423
+ },
424
+ "aliases": [
425
+ "sub",
426
+ "subtract"
427
+ ],
428
+ "reduction_strategy": null
429
+ },
430
+ "mul": {
431
+ "id": "core.mul",
432
+ "kind": "elementwise",
433
+ "arity": 2,
434
+ "params": [
435
+ {
436
+ "name": "left_operand"
437
+ },
438
+ {
439
+ "name": "right_operand"
440
+ }
441
+ ],
442
+ "kernels": {
443
+ "ruby": "mul:ruby:v1"
444
+ },
445
+ "dtype": {
446
+ "rule": "promote",
447
+ "params": [
448
+ "left_operand",
449
+ "right_operand"
450
+ ]
451
+ },
452
+ "aliases": [
453
+ "mul",
454
+ "multiply"
455
+ ],
456
+ "reduction_strategy": null
457
+ },
458
+ "multiply": {
459
+ "id": "core.mul",
460
+ "kind": "elementwise",
461
+ "arity": 2,
462
+ "params": [
463
+ {
464
+ "name": "left_operand"
465
+ },
466
+ {
467
+ "name": "right_operand"
468
+ }
469
+ ],
470
+ "kernels": {
471
+ "ruby": "mul:ruby:v1"
472
+ },
473
+ "dtype": {
474
+ "rule": "promote",
475
+ "params": [
476
+ "left_operand",
477
+ "right_operand"
478
+ ]
479
+ },
480
+ "aliases": [
481
+ "mul",
482
+ "multiply"
483
+ ],
484
+ "reduction_strategy": null
485
+ },
486
+ "pow": {
487
+ "id": "core.pow",
488
+ "kind": "elementwise",
489
+ "arity": 2,
490
+ "params": [
491
+ {
492
+ "name": "base"
493
+ },
494
+ {
495
+ "name": "exponent"
496
+ }
497
+ ],
498
+ "kernels": {
499
+ "ruby": "pow:ruby:v1"
500
+ },
501
+ "dtype": {
502
+ "rule": "promote",
503
+ "params": [
504
+ "base",
505
+ "exponent"
506
+ ]
507
+ },
508
+ "aliases": [
509
+ "pow",
510
+ "power"
511
+ ],
512
+ "reduction_strategy": null
513
+ },
514
+ "power": {
515
+ "id": "core.pow",
516
+ "kind": "elementwise",
517
+ "arity": 2,
518
+ "params": [
519
+ {
520
+ "name": "base"
521
+ },
522
+ {
523
+ "name": "exponent"
524
+ }
525
+ ],
526
+ "kernels": {
527
+ "ruby": "pow:ruby:v1"
528
+ },
529
+ "dtype": {
530
+ "rule": "promote",
531
+ "params": [
532
+ "base",
533
+ "exponent"
534
+ ]
535
+ },
536
+ "aliases": [
537
+ "pow",
538
+ "power"
539
+ ],
540
+ "reduction_strategy": null
541
+ },
542
+ "div": {
543
+ "id": "core.div",
544
+ "kind": "elementwise",
545
+ "arity": 2,
546
+ "params": [
547
+ {
548
+ "name": "left_operand"
549
+ },
550
+ {
551
+ "name": "right_operand"
552
+ }
553
+ ],
554
+ "kernels": {
555
+ "ruby": "div:ruby:v1"
556
+ },
557
+ "dtype": {
558
+ "rule": "scalar",
559
+ "kind": "float"
560
+ },
561
+ "aliases": [
562
+ "div",
563
+ "divide"
564
+ ],
565
+ "reduction_strategy": null
566
+ },
567
+ "divide": {
568
+ "id": "core.div",
569
+ "kind": "elementwise",
570
+ "arity": 2,
571
+ "params": [
572
+ {
573
+ "name": "left_operand"
574
+ },
575
+ {
576
+ "name": "right_operand"
577
+ }
578
+ ],
579
+ "kernels": {
580
+ "ruby": "div:ruby:v1"
581
+ },
582
+ "dtype": {
583
+ "rule": "scalar",
584
+ "kind": "float"
585
+ },
586
+ "aliases": [
587
+ "div",
588
+ "divide"
589
+ ],
590
+ "reduction_strategy": null
591
+ },
592
+ "mod": {
593
+ "id": "core.mod",
594
+ "kind": "elementwise",
595
+ "arity": 2,
596
+ "params": [
597
+ {
598
+ "name": "left_operand"
599
+ },
600
+ {
601
+ "name": "right_operand"
602
+ }
603
+ ],
604
+ "kernels": {
605
+ "v1": "mod.ruby:v1"
606
+ },
607
+ "dtype": {
608
+ "rule": "promote",
609
+ "params": [
610
+ "left_operand",
611
+ "right_operand"
612
+ ]
613
+ },
614
+ "aliases": [
615
+ "mod",
616
+ "modulo",
617
+ "%"
618
+ ],
619
+ "reduction_strategy": null
620
+ },
621
+ "modulo": {
622
+ "id": "core.mod",
623
+ "kind": "elementwise",
624
+ "arity": 2,
625
+ "params": [
626
+ {
627
+ "name": "left_operand"
628
+ },
629
+ {
630
+ "name": "right_operand"
631
+ }
632
+ ],
633
+ "kernels": {
634
+ "v1": "mod.ruby:v1"
635
+ },
636
+ "dtype": {
637
+ "rule": "promote",
638
+ "params": [
639
+ "left_operand",
640
+ "right_operand"
641
+ ]
642
+ },
643
+ "aliases": [
644
+ "mod",
645
+ "modulo",
646
+ "%"
647
+ ],
648
+ "reduction_strategy": null
649
+ },
650
+ "%": {
651
+ "id": "core.mod",
652
+ "kind": "elementwise",
653
+ "arity": 2,
654
+ "params": [
655
+ {
656
+ "name": "left_operand"
657
+ },
658
+ {
659
+ "name": "right_operand"
660
+ }
661
+ ],
662
+ "kernels": {
663
+ "v1": "mod.ruby:v1"
664
+ },
665
+ "dtype": {
666
+ "rule": "promote",
667
+ "params": [
668
+ "left_operand",
669
+ "right_operand"
670
+ ]
671
+ },
672
+ "aliases": [
673
+ "mod",
674
+ "modulo",
675
+ "%"
676
+ ],
677
+ "reduction_strategy": null
678
+ },
679
+ "clamp": {
680
+ "id": "core.clamp",
681
+ "kind": "elementwise",
682
+ "arity": 3,
683
+ "params": [
684
+ {
685
+ "name": "x"
686
+ },
687
+ {
688
+ "name": "lo"
689
+ },
690
+ {
691
+ "name": "hi"
692
+ }
693
+ ],
694
+ "kernels": {
695
+ "ruby": "clamp:ruby:v1"
696
+ },
697
+ "dtype": {
698
+ "rule": "same_as",
699
+ "param": "x"
700
+ },
701
+ "aliases": [
702
+ "clamp"
703
+ ],
704
+ "reduction_strategy": null
705
+ },
706
+ "and": {
707
+ "id": "core.and",
708
+ "kind": "elementwise",
709
+ "arity": 2,
710
+ "params": [
711
+ {
712
+ "name": "left_operand"
713
+ },
714
+ {
715
+ "name": "right_operand"
716
+ }
717
+ ],
718
+ "kernels": {
719
+ "ruby": "and:ruby:v1"
720
+ },
721
+ "dtype": {
722
+ "rule": "scalar",
723
+ "kind": "boolean"
724
+ },
725
+ "aliases": [
726
+ "and",
727
+ "&"
728
+ ],
729
+ "reduction_strategy": null
730
+ },
731
+ "&": {
732
+ "id": "core.and",
733
+ "kind": "elementwise",
734
+ "arity": 2,
735
+ "params": [
736
+ {
737
+ "name": "left_operand"
738
+ },
739
+ {
740
+ "name": "right_operand"
741
+ }
742
+ ],
743
+ "kernels": {
744
+ "ruby": "and:ruby:v1"
745
+ },
746
+ "dtype": {
747
+ "rule": "scalar",
748
+ "kind": "boolean"
749
+ },
750
+ "aliases": [
751
+ "and",
752
+ "&"
753
+ ],
754
+ "reduction_strategy": null
755
+ },
756
+ "or": {
757
+ "id": "core.or",
758
+ "kind": "elementwise",
759
+ "arity": 2,
760
+ "params": [
761
+ {
762
+ "name": "left_operand"
763
+ },
764
+ {
765
+ "name": "right_operand"
766
+ }
767
+ ],
768
+ "kernels": {
769
+ "ruby": "or:ruby:v1"
770
+ },
771
+ "dtype": {
772
+ "rule": "scalar",
773
+ "kind": "boolean"
774
+ },
775
+ "aliases": [
776
+ "or",
777
+ "|"
778
+ ],
779
+ "reduction_strategy": null
780
+ },
781
+ "|": {
782
+ "id": "core.or",
783
+ "kind": "elementwise",
784
+ "arity": 2,
785
+ "params": [
786
+ {
787
+ "name": "left_operand"
788
+ },
789
+ {
790
+ "name": "right_operand"
791
+ }
792
+ ],
793
+ "kernels": {
794
+ "ruby": "or:ruby:v1"
795
+ },
796
+ "dtype": {
797
+ "rule": "scalar",
798
+ "kind": "boolean"
799
+ },
800
+ "aliases": [
801
+ "or",
802
+ "|"
803
+ ],
804
+ "reduction_strategy": null
805
+ },
806
+ "not": {
807
+ "id": "core.not",
808
+ "kind": "elementwise",
809
+ "arity": 1,
810
+ "params": [
811
+ {
812
+ "name": "operand"
813
+ }
814
+ ],
815
+ "kernels": {
816
+ "ruby": "not:ruby:v1"
817
+ },
818
+ "dtype": {
819
+ "rule": "scalar",
820
+ "kind": "boolean"
821
+ },
822
+ "aliases": [
823
+ "not",
824
+ "!"
825
+ ],
826
+ "reduction_strategy": null
827
+ },
828
+ "!": {
829
+ "id": "core.not",
830
+ "kind": "elementwise",
831
+ "arity": 1,
832
+ "params": [
833
+ {
834
+ "name": "operand"
835
+ }
836
+ ],
837
+ "kernels": {
838
+ "ruby": "not:ruby:v1"
839
+ },
840
+ "dtype": {
841
+ "rule": "scalar",
842
+ "kind": "boolean"
843
+ },
844
+ "aliases": [
845
+ "not",
846
+ "!"
847
+ ],
848
+ "reduction_strategy": null
849
+ },
850
+ "gte": {
851
+ "id": "core.gte",
852
+ "kind": "elementwise",
853
+ "arity": 2,
854
+ "params": [
855
+ {
856
+ "name": "left_operand"
857
+ },
858
+ {
859
+ "name": "right_operand"
860
+ }
861
+ ],
862
+ "kernels": {
863
+ "ruby": "gte:ruby:v1"
864
+ },
865
+ "dtype": {
866
+ "rule": "scalar",
867
+ "kind": "boolean"
868
+ },
869
+ "aliases": [
870
+ "gte",
871
+ "ge",
872
+ "greater_than_or_equal",
873
+ ">="
874
+ ],
875
+ "reduction_strategy": null
876
+ },
877
+ "ge": {
878
+ "id": "core.gte",
879
+ "kind": "elementwise",
880
+ "arity": 2,
881
+ "params": [
882
+ {
883
+ "name": "left_operand"
884
+ },
885
+ {
886
+ "name": "right_operand"
887
+ }
888
+ ],
889
+ "kernels": {
890
+ "ruby": "gte:ruby:v1"
891
+ },
892
+ "dtype": {
893
+ "rule": "scalar",
894
+ "kind": "boolean"
895
+ },
896
+ "aliases": [
897
+ "gte",
898
+ "ge",
899
+ "greater_than_or_equal",
900
+ ">="
901
+ ],
902
+ "reduction_strategy": null
903
+ },
904
+ "greater_than_or_equal": {
905
+ "id": "core.gte",
906
+ "kind": "elementwise",
907
+ "arity": 2,
908
+ "params": [
909
+ {
910
+ "name": "left_operand"
911
+ },
912
+ {
913
+ "name": "right_operand"
914
+ }
915
+ ],
916
+ "kernels": {
917
+ "ruby": "gte:ruby:v1"
918
+ },
919
+ "dtype": {
920
+ "rule": "scalar",
921
+ "kind": "boolean"
922
+ },
923
+ "aliases": [
924
+ "gte",
925
+ "ge",
926
+ "greater_than_or_equal",
927
+ ">="
928
+ ],
929
+ "reduction_strategy": null
930
+ },
931
+ ">=": {
932
+ "id": "core.gte",
933
+ "kind": "elementwise",
934
+ "arity": 2,
935
+ "params": [
936
+ {
937
+ "name": "left_operand"
938
+ },
939
+ {
940
+ "name": "right_operand"
941
+ }
942
+ ],
943
+ "kernels": {
944
+ "ruby": "gte:ruby:v1"
945
+ },
946
+ "dtype": {
947
+ "rule": "scalar",
948
+ "kind": "boolean"
949
+ },
950
+ "aliases": [
951
+ "gte",
952
+ "ge",
953
+ "greater_than_or_equal",
954
+ ">="
955
+ ],
956
+ "reduction_strategy": null
957
+ },
958
+ "gt": {
959
+ "id": "core.gt",
960
+ "kind": "elementwise",
961
+ "arity": 2,
962
+ "params": [
963
+ {
964
+ "name": "left_operand"
965
+ },
966
+ {
967
+ "name": "right_operand"
968
+ }
969
+ ],
970
+ "kernels": {
971
+ "ruby": "gt:ruby:v1"
972
+ },
973
+ "dtype": {
974
+ "rule": "scalar",
975
+ "kind": "boolean"
976
+ },
977
+ "aliases": [
978
+ "gt",
979
+ "greater_than",
980
+ ">"
981
+ ],
982
+ "reduction_strategy": null
983
+ },
984
+ "greater_than": {
985
+ "id": "core.gt",
986
+ "kind": "elementwise",
987
+ "arity": 2,
988
+ "params": [
989
+ {
990
+ "name": "left_operand"
991
+ },
992
+ {
993
+ "name": "right_operand"
994
+ }
995
+ ],
996
+ "kernels": {
997
+ "ruby": "gt:ruby:v1"
998
+ },
999
+ "dtype": {
1000
+ "rule": "scalar",
1001
+ "kind": "boolean"
1002
+ },
1003
+ "aliases": [
1004
+ "gt",
1005
+ "greater_than",
1006
+ ">"
1007
+ ],
1008
+ "reduction_strategy": null
1009
+ },
1010
+ ">": {
1011
+ "id": "core.gt",
1012
+ "kind": "elementwise",
1013
+ "arity": 2,
1014
+ "params": [
1015
+ {
1016
+ "name": "left_operand"
1017
+ },
1018
+ {
1019
+ "name": "right_operand"
1020
+ }
1021
+ ],
1022
+ "kernels": {
1023
+ "ruby": "gt:ruby:v1"
1024
+ },
1025
+ "dtype": {
1026
+ "rule": "scalar",
1027
+ "kind": "boolean"
1028
+ },
1029
+ "aliases": [
1030
+ "gt",
1031
+ "greater_than",
1032
+ ">"
1033
+ ],
1034
+ "reduction_strategy": null
1035
+ },
1036
+ "lte": {
1037
+ "id": "core.lte",
1038
+ "kind": "elementwise",
1039
+ "arity": 2,
1040
+ "params": [
1041
+ {
1042
+ "name": "left_operand"
1043
+ },
1044
+ {
1045
+ "name": "right_operand"
1046
+ }
1047
+ ],
1048
+ "kernels": {
1049
+ "ruby": "lte:ruby:v1"
1050
+ },
1051
+ "dtype": {
1052
+ "rule": "scalar",
1053
+ "kind": "boolean"
1054
+ },
1055
+ "aliases": [
1056
+ "lte",
1057
+ "le",
1058
+ "less_than_or_equal",
1059
+ "<="
1060
+ ],
1061
+ "reduction_strategy": null
1062
+ },
1063
+ "le": {
1064
+ "id": "core.lte",
1065
+ "kind": "elementwise",
1066
+ "arity": 2,
1067
+ "params": [
1068
+ {
1069
+ "name": "left_operand"
1070
+ },
1071
+ {
1072
+ "name": "right_operand"
1073
+ }
1074
+ ],
1075
+ "kernels": {
1076
+ "ruby": "lte:ruby:v1"
1077
+ },
1078
+ "dtype": {
1079
+ "rule": "scalar",
1080
+ "kind": "boolean"
1081
+ },
1082
+ "aliases": [
1083
+ "lte",
1084
+ "le",
1085
+ "less_than_or_equal",
1086
+ "<="
1087
+ ],
1088
+ "reduction_strategy": null
1089
+ },
1090
+ "less_than_or_equal": {
1091
+ "id": "core.lte",
1092
+ "kind": "elementwise",
1093
+ "arity": 2,
1094
+ "params": [
1095
+ {
1096
+ "name": "left_operand"
1097
+ },
1098
+ {
1099
+ "name": "right_operand"
1100
+ }
1101
+ ],
1102
+ "kernels": {
1103
+ "ruby": "lte:ruby:v1"
1104
+ },
1105
+ "dtype": {
1106
+ "rule": "scalar",
1107
+ "kind": "boolean"
1108
+ },
1109
+ "aliases": [
1110
+ "lte",
1111
+ "le",
1112
+ "less_than_or_equal",
1113
+ "<="
1114
+ ],
1115
+ "reduction_strategy": null
1116
+ },
1117
+ "<=": {
1118
+ "id": "core.lte",
1119
+ "kind": "elementwise",
1120
+ "arity": 2,
1121
+ "params": [
1122
+ {
1123
+ "name": "left_operand"
1124
+ },
1125
+ {
1126
+ "name": "right_operand"
1127
+ }
1128
+ ],
1129
+ "kernels": {
1130
+ "ruby": "lte:ruby:v1"
1131
+ },
1132
+ "dtype": {
1133
+ "rule": "scalar",
1134
+ "kind": "boolean"
1135
+ },
1136
+ "aliases": [
1137
+ "lte",
1138
+ "le",
1139
+ "less_than_or_equal",
1140
+ "<="
1141
+ ],
1142
+ "reduction_strategy": null
1143
+ },
1144
+ "lt": {
1145
+ "id": "core.lt",
1146
+ "kind": "elementwise",
1147
+ "arity": 2,
1148
+ "params": [
1149
+ {
1150
+ "name": "left_operand"
1151
+ },
1152
+ {
1153
+ "name": "right_operand"
1154
+ }
1155
+ ],
1156
+ "kernels": {
1157
+ "ruby": "lt:ruby:v1"
1158
+ },
1159
+ "dtype": {
1160
+ "rule": "scalar",
1161
+ "kind": "boolean"
1162
+ },
1163
+ "aliases": [
1164
+ "lt",
1165
+ "less_than",
1166
+ "<"
1167
+ ],
1168
+ "reduction_strategy": null
1169
+ },
1170
+ "less_than": {
1171
+ "id": "core.lt",
1172
+ "kind": "elementwise",
1173
+ "arity": 2,
1174
+ "params": [
1175
+ {
1176
+ "name": "left_operand"
1177
+ },
1178
+ {
1179
+ "name": "right_operand"
1180
+ }
1181
+ ],
1182
+ "kernels": {
1183
+ "ruby": "lt:ruby:v1"
1184
+ },
1185
+ "dtype": {
1186
+ "rule": "scalar",
1187
+ "kind": "boolean"
1188
+ },
1189
+ "aliases": [
1190
+ "lt",
1191
+ "less_than",
1192
+ "<"
1193
+ ],
1194
+ "reduction_strategy": null
1195
+ },
1196
+ "<": {
1197
+ "id": "core.lt",
1198
+ "kind": "elementwise",
1199
+ "arity": 2,
1200
+ "params": [
1201
+ {
1202
+ "name": "left_operand"
1203
+ },
1204
+ {
1205
+ "name": "right_operand"
1206
+ }
1207
+ ],
1208
+ "kernels": {
1209
+ "ruby": "lt:ruby:v1"
1210
+ },
1211
+ "dtype": {
1212
+ "rule": "scalar",
1213
+ "kind": "boolean"
1214
+ },
1215
+ "aliases": [
1216
+ "lt",
1217
+ "less_than",
1218
+ "<"
1219
+ ],
1220
+ "reduction_strategy": null
1221
+ },
1222
+ "eq": {
1223
+ "id": "core.eq",
1224
+ "kind": "elementwise",
1225
+ "arity": 2,
1226
+ "params": [
1227
+ {
1228
+ "name": "left_operand"
1229
+ },
1230
+ {
1231
+ "name": "right_operand"
1232
+ }
1233
+ ],
1234
+ "kernels": {
1235
+ "ruby": "eq:ruby:v1"
1236
+ },
1237
+ "dtype": {
1238
+ "rule": "scalar",
1239
+ "kind": "boolean"
1240
+ },
1241
+ "aliases": [
1242
+ "eq",
1243
+ "equal",
1244
+ "=="
1245
+ ],
1246
+ "reduction_strategy": null
1247
+ },
1248
+ "equal": {
1249
+ "id": "core.eq",
1250
+ "kind": "elementwise",
1251
+ "arity": 2,
1252
+ "params": [
1253
+ {
1254
+ "name": "left_operand"
1255
+ },
1256
+ {
1257
+ "name": "right_operand"
1258
+ }
1259
+ ],
1260
+ "kernels": {
1261
+ "ruby": "eq:ruby:v1"
1262
+ },
1263
+ "dtype": {
1264
+ "rule": "scalar",
1265
+ "kind": "boolean"
1266
+ },
1267
+ "aliases": [
1268
+ "eq",
1269
+ "equal",
1270
+ "=="
1271
+ ],
1272
+ "reduction_strategy": null
1273
+ },
1274
+ "==": {
1275
+ "id": "core.eq",
1276
+ "kind": "elementwise",
1277
+ "arity": 2,
1278
+ "params": [
1279
+ {
1280
+ "name": "left_operand"
1281
+ },
1282
+ {
1283
+ "name": "right_operand"
1284
+ }
1285
+ ],
1286
+ "kernels": {
1287
+ "ruby": "eq:ruby:v1"
1288
+ },
1289
+ "dtype": {
1290
+ "rule": "scalar",
1291
+ "kind": "boolean"
1292
+ },
1293
+ "aliases": [
1294
+ "eq",
1295
+ "equal",
1296
+ "=="
1297
+ ],
1298
+ "reduction_strategy": null
1299
+ },
1300
+ "neq": {
1301
+ "id": "core.neq",
1302
+ "kind": "elementwise",
1303
+ "arity": 2,
1304
+ "params": [
1305
+ {
1306
+ "name": "left_operand"
1307
+ },
1308
+ {
1309
+ "name": "right_operand"
1310
+ }
1311
+ ],
1312
+ "kernels": {
1313
+ "ruby": "neq:ruby:v1"
1314
+ },
1315
+ "dtype": {
1316
+ "rule": "scalar",
1317
+ "kind": "boolean"
1318
+ },
1319
+ "aliases": [
1320
+ "neq",
1321
+ "not_equal",
1322
+ "!="
1323
+ ],
1324
+ "reduction_strategy": null
1325
+ },
1326
+ "not_equal": {
1327
+ "id": "core.neq",
1328
+ "kind": "elementwise",
1329
+ "arity": 2,
1330
+ "params": [
1331
+ {
1332
+ "name": "left_operand"
1333
+ },
1334
+ {
1335
+ "name": "right_operand"
1336
+ }
1337
+ ],
1338
+ "kernels": {
1339
+ "ruby": "neq:ruby:v1"
1340
+ },
1341
+ "dtype": {
1342
+ "rule": "scalar",
1343
+ "kind": "boolean"
1344
+ },
1345
+ "aliases": [
1346
+ "neq",
1347
+ "not_equal",
1348
+ "!="
1349
+ ],
1350
+ "reduction_strategy": null
1351
+ },
1352
+ "!=": {
1353
+ "id": "core.neq",
1354
+ "kind": "elementwise",
1355
+ "arity": 2,
1356
+ "params": [
1357
+ {
1358
+ "name": "left_operand"
1359
+ },
1360
+ {
1361
+ "name": "right_operand"
1362
+ }
1363
+ ],
1364
+ "kernels": {
1365
+ "ruby": "neq:ruby:v1"
1366
+ },
1367
+ "dtype": {
1368
+ "rule": "scalar",
1369
+ "kind": "boolean"
1370
+ },
1371
+ "aliases": [
1372
+ "neq",
1373
+ "not_equal",
1374
+ "!="
1375
+ ],
1376
+ "reduction_strategy": null
1377
+ },
1378
+ "length": {
1379
+ "id": "core.length",
1380
+ "kind": "elementwise",
1381
+ "arity": 1,
1382
+ "params": [
1383
+ {
1384
+ "name": "collection",
1385
+ "dtype": "string"
1386
+ }
1387
+ ],
1388
+ "kernels": {
1389
+ "ruby": "length:ruby:v1"
1390
+ },
1391
+ "dtype": {
1392
+ "rule": "scalar",
1393
+ "kind": "integer"
1394
+ },
1395
+ "aliases": [
1396
+ "length",
1397
+ "len",
1398
+ "size"
1399
+ ],
1400
+ "reduction_strategy": null
1401
+ },
1402
+ "len": {
1403
+ "id": "core.length",
1404
+ "kind": "elementwise",
1405
+ "arity": 1,
1406
+ "params": [
1407
+ {
1408
+ "name": "collection",
1409
+ "dtype": "string"
1410
+ }
1411
+ ],
1412
+ "kernels": {
1413
+ "ruby": "length:ruby:v1"
1414
+ },
1415
+ "dtype": {
1416
+ "rule": "scalar",
1417
+ "kind": "integer"
1418
+ },
1419
+ "aliases": [
1420
+ "length",
1421
+ "len",
1422
+ "size"
1423
+ ],
1424
+ "reduction_strategy": null
1425
+ },
1426
+ "size": {
1427
+ "id": "core.array_size",
1428
+ "kind": "elementwise",
1429
+ "arity": 1,
1430
+ "params": [
1431
+ {
1432
+ "name": "collection",
1433
+ "dtype": "array"
1434
+ }
1435
+ ],
1436
+ "kernels": {
1437
+ "ruby": "size:ruby:v1"
1438
+ },
1439
+ "dtype": {
1440
+ "rule": "scalar",
1441
+ "kind": "integer"
1442
+ },
1443
+ "aliases": [
1444
+ "array_size",
1445
+ "size"
1446
+ ],
1447
+ "reduction_strategy": null
1448
+ },
1449
+ "array_size": {
1450
+ "id": "core.array_size",
1451
+ "kind": "elementwise",
1452
+ "arity": 1,
1453
+ "params": [
1454
+ {
1455
+ "name": "collection",
1456
+ "dtype": "array"
1457
+ }
1458
+ ],
1459
+ "kernels": {
1460
+ "ruby": "size:ruby:v1"
1461
+ },
1462
+ "dtype": {
1463
+ "rule": "scalar",
1464
+ "kind": "integer"
1465
+ },
1466
+ "aliases": [
1467
+ "array_size",
1468
+ "size"
1469
+ ],
1470
+ "reduction_strategy": null
1471
+ },
1472
+ "at": {
1473
+ "id": "core.at",
1474
+ "kind": "elementwise",
1475
+ "arity": 2,
1476
+ "params": [
1477
+ {
1478
+ "name": "collection"
1479
+ },
1480
+ {
1481
+ "name": "index",
1482
+ "dtype": "integer"
1483
+ }
1484
+ ],
1485
+ "kernels": {
1486
+ "ruby": "at:ruby:v1"
1487
+ },
1488
+ "dtype": {
1489
+ "rule": "element_of",
1490
+ "param": "collection"
1491
+ },
1492
+ "aliases": [
1493
+ "at",
1494
+ "get",
1495
+ "[]"
1496
+ ],
1497
+ "reduction_strategy": null
1498
+ },
1499
+ "get": {
1500
+ "id": "core.at",
1501
+ "kind": "elementwise",
1502
+ "arity": 2,
1503
+ "params": [
1504
+ {
1505
+ "name": "collection"
1506
+ },
1507
+ {
1508
+ "name": "index",
1509
+ "dtype": "integer"
1510
+ }
1511
+ ],
1512
+ "kernels": {
1513
+ "ruby": "at:ruby:v1"
1514
+ },
1515
+ "dtype": {
1516
+ "rule": "element_of",
1517
+ "param": "collection"
1518
+ },
1519
+ "aliases": [
1520
+ "at",
1521
+ "get",
1522
+ "[]"
1523
+ ],
1524
+ "reduction_strategy": null
1525
+ },
1526
+ "[]": {
1527
+ "id": "core.at",
1528
+ "kind": "elementwise",
1529
+ "arity": 2,
1530
+ "params": [
1531
+ {
1532
+ "name": "collection"
1533
+ },
1534
+ {
1535
+ "name": "index",
1536
+ "dtype": "integer"
1537
+ }
1538
+ ],
1539
+ "kernels": {
1540
+ "ruby": "at:ruby:v1"
1541
+ },
1542
+ "dtype": {
1543
+ "rule": "element_of",
1544
+ "param": "collection"
1545
+ },
1546
+ "aliases": [
1547
+ "at",
1548
+ "get",
1549
+ "[]"
1550
+ ],
1551
+ "reduction_strategy": null
1552
+ },
1553
+ "fetch": {
1554
+ "id": "core.hash_fetch",
1555
+ "kind": "elementwise",
1556
+ "arity": 1,
1557
+ "params": [
1558
+ {
1559
+ "name": "key",
1560
+ "dtype": "hash"
1561
+ }
1562
+ ],
1563
+ "kernels": {},
1564
+ "dtype": {
1565
+ "rule": "scalar",
1566
+ "kind": "any"
1567
+ },
1568
+ "aliases": [
1569
+ "fetch"
1570
+ ],
1571
+ "reduction_strategy": null
1572
+ },
1573
+ "to_decimal": {
1574
+ "id": "core.to_decimal",
1575
+ "kind": "elementwise",
1576
+ "arity": 1,
1577
+ "params": [
1578
+ {
1579
+ "name": "value"
1580
+ }
1581
+ ],
1582
+ "kernels": {
1583
+ "ruby": "to_decimal:ruby:v1"
1584
+ },
1585
+ "dtype": {
1586
+ "rule": "scalar",
1587
+ "kind": "decimal"
1588
+ },
1589
+ "aliases": [
1590
+ "to_decimal"
1591
+ ],
1592
+ "reduction_strategy": null
1593
+ },
1594
+ "to_integer": {
1595
+ "id": "core.to_integer",
1596
+ "kind": "elementwise",
1597
+ "arity": 1,
1598
+ "params": [
1599
+ {
1600
+ "name": "value"
1601
+ }
1602
+ ],
1603
+ "kernels": {
1604
+ "ruby": "to_integer:ruby:v1"
1605
+ },
1606
+ "dtype": {
1607
+ "rule": "scalar",
1608
+ "kind": "integer"
1609
+ },
1610
+ "aliases": [
1611
+ "to_integer",
1612
+ "to_int"
1613
+ ],
1614
+ "reduction_strategy": null
1615
+ },
1616
+ "to_int": {
1617
+ "id": "core.to_integer",
1618
+ "kind": "elementwise",
1619
+ "arity": 1,
1620
+ "params": [
1621
+ {
1622
+ "name": "value"
1623
+ }
1624
+ ],
1625
+ "kernels": {
1626
+ "ruby": "to_integer:ruby:v1"
1627
+ },
1628
+ "dtype": {
1629
+ "rule": "scalar",
1630
+ "kind": "integer"
1631
+ },
1632
+ "aliases": [
1633
+ "to_integer",
1634
+ "to_int"
1635
+ ],
1636
+ "reduction_strategy": null
1637
+ },
1638
+ "to_float": {
1639
+ "id": "core.to_float",
1640
+ "kind": "elementwise",
1641
+ "arity": 1,
1642
+ "params": [
1643
+ {
1644
+ "name": "value"
1645
+ }
1646
+ ],
1647
+ "kernels": {
1648
+ "ruby": "to_float:ruby:v1"
1649
+ },
1650
+ "dtype": {
1651
+ "rule": "scalar",
1652
+ "kind": "float"
1653
+ },
1654
+ "aliases": [
1655
+ "to_float"
1656
+ ],
1657
+ "reduction_strategy": null
1658
+ },
1659
+ "to_string": {
1660
+ "id": "core.to_string",
1661
+ "kind": "elementwise",
1662
+ "arity": 1,
1663
+ "params": [
1664
+ {
1665
+ "name": "value"
1666
+ }
1667
+ ],
1668
+ "kernels": {
1669
+ "ruby": "to_string:ruby:v1"
1670
+ },
1671
+ "dtype": {
1672
+ "rule": "scalar",
1673
+ "kind": "string"
1674
+ },
1675
+ "aliases": [
1676
+ "to_string",
1677
+ "to_str"
1678
+ ],
1679
+ "reduction_strategy": null
1680
+ },
1681
+ "to_str": {
1682
+ "id": "core.to_string",
1683
+ "kind": "elementwise",
1684
+ "arity": 1,
1685
+ "params": [
1686
+ {
1687
+ "name": "value"
1688
+ }
1689
+ ],
1690
+ "kernels": {
1691
+ "ruby": "to_string:ruby:v1"
1692
+ },
1693
+ "dtype": {
1694
+ "rule": "scalar",
1695
+ "kind": "string"
1696
+ },
1697
+ "aliases": [
1698
+ "to_string",
1699
+ "to_str"
1700
+ ],
1701
+ "reduction_strategy": null
1702
+ },
1703
+ "select": {
1704
+ "id": "__select__",
1705
+ "kind": "elementwise",
1706
+ "arity": 3,
1707
+ "params": [
1708
+ {
1709
+ "name": "condition_mask"
1710
+ },
1711
+ {
1712
+ "name": "value_when_true"
1713
+ },
1714
+ {
1715
+ "name": "value_when_false"
1716
+ }
1717
+ ],
1718
+ "kernels": {},
1719
+ "dtype": {
1720
+ "rule": "same_as",
1721
+ "param": "value_when_true"
1722
+ },
1723
+ "aliases": [
1724
+ "select",
1725
+ "if"
1726
+ ],
1727
+ "reduction_strategy": null
1728
+ },
1729
+ "if": {
1730
+ "id": "__select__",
1731
+ "kind": "elementwise",
1732
+ "arity": 3,
1733
+ "params": [
1734
+ {
1735
+ "name": "condition_mask"
1736
+ },
1737
+ {
1738
+ "name": "value_when_true"
1739
+ },
1740
+ {
1741
+ "name": "value_when_false"
1742
+ }
1743
+ ],
1744
+ "kernels": {},
1745
+ "dtype": {
1746
+ "rule": "same_as",
1747
+ "param": "value_when_true"
1748
+ },
1749
+ "aliases": [
1750
+ "select",
1751
+ "if"
1752
+ ],
1753
+ "reduction_strategy": null
1754
+ },
1755
+ "concat": {
1756
+ "id": "core.concat",
1757
+ "kind": "elementwise",
1758
+ "arity": 2,
1759
+ "params": [
1760
+ {
1761
+ "name": "left_string"
1762
+ },
1763
+ {
1764
+ "name": "right_string"
1765
+ }
1766
+ ],
1767
+ "kernels": {
1768
+ "ruby": "concat:ruby:v1"
1769
+ },
1770
+ "dtype": {
1771
+ "rule": "scalar",
1772
+ "kind": "string"
1773
+ },
1774
+ "aliases": [
1775
+ "concat"
1776
+ ],
1777
+ "reduction_strategy": null
1778
+ },
1779
+ "upcase": {
1780
+ "id": "core.upcase",
1781
+ "kind": "elementwise",
1782
+ "arity": 1,
1783
+ "params": [
1784
+ {
1785
+ "name": "string"
1786
+ }
1787
+ ],
1788
+ "kernels": {
1789
+ "ruby": "upcase:ruby:v1"
1790
+ },
1791
+ "dtype": {
1792
+ "rule": "scalar",
1793
+ "kind": "string"
1794
+ },
1795
+ "aliases": [
1796
+ "upcase"
1797
+ ],
1798
+ "reduction_strategy": null
1799
+ },
1800
+ "downcase": {
1801
+ "id": "core.downcase",
1802
+ "kind": "elementwise",
1803
+ "arity": 1,
1804
+ "params": [
1805
+ {
1806
+ "name": "string"
1807
+ }
1808
+ ],
1809
+ "kernels": {
1810
+ "ruby": "downcase:ruby:v1"
1811
+ },
1812
+ "dtype": {
1813
+ "rule": "scalar",
1814
+ "kind": "string"
1815
+ },
1816
+ "aliases": [
1817
+ "downcase"
1818
+ ],
1819
+ "reduction_strategy": null
1820
+ }
1821
+ }