jade-lang 0.9.0 → 0.10.1

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +442 -12
  3. data/README.md +1 -0
  4. data/docs/interop.md +18 -1
  5. data/docs/json.md +34 -3
  6. data/docs/stdlib.md +3 -1
  7. data/docs/syntax.md +96 -0
  8. data/lib/jade/api.rb +9 -0
  9. data/lib/jade/ast.rb +37 -1
  10. data/lib/jade/cli/eject.rb +132 -0
  11. data/lib/jade/cli/init.rb +86 -0
  12. data/lib/jade/cli.rb +4 -0
  13. data/lib/jade/codegen/boundary/specialized/list.rb +11 -7
  14. data/lib/jade/codegen/boundary/specialized/maybe.rb +2 -2
  15. data/lib/jade/codegen/boundary/specialized/record.rb +19 -4
  16. data/lib/jade/codegen/boundary/specialized/scalar.rb +2 -2
  17. data/lib/jade/codegen/boundary/specialized.rb +13 -5
  18. data/lib/jade/codegen/boundary.rb +12 -2
  19. data/lib/jade/codegen/context.rb +17 -0
  20. data/lib/jade/codegen/error.rb +1 -0
  21. data/lib/jade/codegen/function_call.rb +38 -7
  22. data/lib/jade/codegen/function_declaration.rb +25 -13
  23. data/lib/jade/codegen/helpers.rb +27 -4
  24. data/lib/jade/codegen/implementation.rb +2 -2
  25. data/lib/jade/codegen/inline.rb +1 -1
  26. data/lib/jade/codegen/inlines.rb +6 -1
  27. data/lib/jade/codegen/names.rb +31 -0
  28. data/lib/jade/codegen/pattern/constructor.rb +2 -2
  29. data/lib/jade/codegen/transforms/fold_shape.rb +1 -1
  30. data/lib/jade/codegen.rb +76 -15
  31. data/lib/jade/compiler.rb +2 -0
  32. data/lib/jade/entry.rb +1 -1
  33. data/lib/jade/formatter/calls.rb +68 -11
  34. data/lib/jade/formatter/collections.rb +4 -4
  35. data/lib/jade/formatter/declarations.rb +13 -15
  36. data/lib/jade/formatter/helper.rb +20 -0
  37. data/lib/jade/formatter/infix_application.rb +19 -4
  38. data/lib/jade/formatter/lambda.rb +24 -12
  39. data/lib/jade/formatter/pattern.rb +3 -0
  40. data/lib/jade/formatter/type.rb +3 -5
  41. data/lib/jade/frontend/desugaring/placeholder.rb +40 -17
  42. data/lib/jade/frontend/desugaring.rb +29 -9
  43. data/lib/jade/frontend/fixity_fixer.rb +6 -4
  44. data/lib/jade/frontend/forward_declaration/error/alias_expansion.rb +23 -0
  45. data/lib/jade/frontend/forward_declaration/error/duplicate_constructor_name.rb +45 -0
  46. data/lib/jade/frontend/forward_declaration/error/duplicate_type_name.rb +42 -0
  47. data/lib/jade/frontend/forward_declaration/error.rb +3 -0
  48. data/lib/jade/frontend/forward_declaration/helper.rb +58 -0
  49. data/lib/jade/frontend/forward_declaration/import_declaration.rb +4 -0
  50. data/lib/jade/frontend/forward_declaration/interface_declaration.rb +6 -0
  51. data/lib/jade/frontend/forward_declaration/module.rb +4 -0
  52. data/lib/jade/frontend/forward_declaration/struct_declaration.rb +10 -1
  53. data/lib/jade/frontend/forward_declaration/type_alias_declaration.rb +37 -0
  54. data/lib/jade/frontend/forward_declaration/type_declaration.rb +10 -1
  55. data/lib/jade/frontend/forward_declaration.rb +2 -0
  56. data/lib/jade/frontend/pattern_analysis/exhaustiveness.rb +47 -43
  57. data/lib/jade/frontend/pattern_analysis/matrix.rb +28 -219
  58. data/lib/jade/frontend/pattern_analysis/pattern.rb +132 -0
  59. data/lib/jade/frontend/pattern_analysis/redundancy.rb +24 -0
  60. data/lib/jade/frontend/pattern_analysis/signature.rb +220 -0
  61. data/lib/jade/frontend/pattern_analysis/usefulness.rb +72 -0
  62. data/lib/jade/frontend/pattern_analysis/witnesses.rb +73 -0
  63. data/lib/jade/frontend/pattern_analysis.rb +5 -38
  64. data/lib/jade/frontend/semantic_analysis/error/implementation_on_alias.rb +24 -0
  65. data/lib/jade/frontend/semantic_analysis/error/no_base_case.rb +45 -0
  66. data/lib/jade/frontend/semantic_analysis/error/placeholder_not_allowed.rb +15 -3
  67. data/lib/jade/frontend/semantic_analysis/error/recursive_type_alias.rb +24 -0
  68. data/lib/jade/frontend/semantic_analysis/error.rb +3 -0
  69. data/lib/jade/frontend/semantic_analysis/helper.rb +31 -0
  70. data/lib/jade/frontend/semantic_analysis/implementation.rb +13 -0
  71. data/lib/jade/frontend/semantic_analysis/inhabitedness.rb +90 -0
  72. data/lib/jade/frontend/semantic_analysis/interop_import_declaration.rb +28 -16
  73. data/lib/jade/frontend/semantic_analysis/keyed_call.rb +21 -5
  74. data/lib/jade/frontend/semantic_analysis/pattern_range.rb +16 -0
  75. data/lib/jade/frontend/semantic_analysis/struct_declaration.rb +1 -0
  76. data/lib/jade/frontend/semantic_analysis/type_alias_declaration/cycle_detection.rb +95 -0
  77. data/lib/jade/frontend/semantic_analysis/type_alias_declaration.rb +48 -0
  78. data/lib/jade/frontend/semantic_analysis/type_declaration.rb +1 -0
  79. data/lib/jade/frontend/semantic_analysis.rb +5 -0
  80. data/lib/jade/frontend/type_checking/canonicalize.rb +1 -0
  81. data/lib/jade/frontend/type_checking/cascade.rb +90 -0
  82. data/lib/jade/frontend/type_checking/constraints/deriving/encodable.rb +10 -0
  83. data/lib/jade/frontend/type_checking/constraints.rb +18 -3
  84. data/lib/jade/frontend/type_checking/error/display.rb +49 -0
  85. data/lib/jade/frontend/type_checking/error/division_by_zero.rb +31 -0
  86. data/lib/jade/frontend/type_checking/error/empty_range_pattern.rb +25 -0
  87. data/lib/jade/frontend/type_checking/error/function_body_type_mismatch.rb +4 -3
  88. data/lib/jade/frontend/type_checking/error/function_call_type_mismatch.rb +108 -5
  89. data/lib/jade/frontend/type_checking/error/if_branch_type_mismatch.rb +1 -1
  90. data/lib/jade/frontend/type_checking/error/if_branches_type_mismatch.rb +1 -1
  91. data/lib/jade/frontend/type_checking/error/if_condition_type_mismatch.rb +1 -1
  92. data/lib/jade/frontend/type_checking/error/implementation_type_mismatch.rb +1 -1
  93. data/lib/jade/frontend/type_checking/error/list_item_type_mismatch.rb +1 -1
  94. data/lib/jade/frontend/type_checking/error/missing_patterns.rb +20 -4
  95. data/lib/jade/frontend/type_checking/error/pattern_type_mismatch.rb +7 -1
  96. data/lib/jade/frontend/type_checking/error/range_pattern_type.rb +29 -0
  97. data/lib/jade/frontend/type_checking/error/record_access_type_mismatch.rb +2 -2
  98. data/lib/jade/frontend/type_checking/error/record_update_type_mismatch.rb +21 -0
  99. data/lib/jade/frontend/type_checking/error/recursive_derivation.rb +25 -0
  100. data/lib/jade/frontend/type_checking/error/type_mismatch.rb +10 -2
  101. data/lib/jade/frontend/type_checking/error/unreachable_branch.rb +22 -0
  102. data/lib/jade/frontend/type_checking/error.rb +7 -0
  103. data/lib/jade/frontend/type_checking/inference/assign.rb +1 -1
  104. data/lib/jade/frontend/type_checking/inference/case_of.rb +21 -4
  105. data/lib/jade/frontend/type_checking/inference/division.rb +50 -0
  106. data/lib/jade/frontend/type_checking/inference/function_call.rb +26 -1
  107. data/lib/jade/frontend/type_checking/inference/lambda.rb +1 -1
  108. data/lib/jade/frontend/type_checking/inference/pattern.rb +35 -0
  109. data/lib/jade/frontend/type_checking/inference/record_update.rb +8 -1
  110. data/lib/jade/frontend/type_checking/inference/type_alias_declaration.rb +18 -0
  111. data/lib/jade/frontend/type_checking/inference.rb +2 -0
  112. data/lib/jade/frontend/type_checking/loader.rb +11 -0
  113. data/lib/jade/frontend/type_checking/port_resolution.rb +26 -8
  114. data/lib/jade/frontend/type_checking/substitution.rb +2 -2
  115. data/lib/jade/frontend/type_checking.rb +3 -1
  116. data/lib/jade/frontend/usage_analysis.rb +5 -1
  117. data/lib/jade/interop/boundary.rb +64 -24
  118. data/lib/jade/interop/error.rb +35 -7
  119. data/lib/jade/interop/lowering.rb +8 -2
  120. data/lib/jade/lsp/converters.rb +83 -2
  121. data/lib/jade/lsp/handlers.rb +122 -25
  122. data/lib/jade/lsp/snippets.rb +12 -0
  123. data/lib/jade/lsp/state.rb +11 -4
  124. data/lib/jade/module_loader/build.rb +36 -0
  125. data/lib/jade/module_loader.rb +1 -0
  126. data/lib/jade/parsing/combinators.rb +78 -2
  127. data/lib/jade/parsing/error.rb +43 -6
  128. data/lib/jade/parsing/type.rb +6 -4
  129. data/lib/jade/parsing.rb +140 -26
  130. data/lib/jade/runtime.rb +32 -13
  131. data/lib/jade/source.rb +6 -2
  132. data/lib/jade/stdlib/basics.rb +22 -3
  133. data/lib/jade/stdlib/char.rb +2 -0
  134. data/lib/jade/stdlib/clock.rb +6 -2
  135. data/lib/jade/stdlib/decimal.rb +51 -14
  136. data/lib/jade/stdlib/decode.rb +11 -0
  137. data/lib/jade/stdlib/intrinsics.rb +59 -6
  138. data/lib/jade/stdlib/list.rb +37 -1
  139. data/lib/jade/stdlib/number.rb +47 -0
  140. data/lib/jade/stdlib/range.rb +211 -0
  141. data/lib/jade/stdlib.rb +11 -4
  142. data/lib/jade/symbol/alias.rb +11 -0
  143. data/lib/jade/symbol/parser.rb +1 -1
  144. data/lib/jade/symbol/stdlib_function.rb +1 -1
  145. data/lib/jade/symbol.rb +13 -1
  146. data/lib/jade/task.rb +0 -2
  147. data/lib/jade/type/anonymous_record.rb +11 -2
  148. data/lib/jade/type/application.rb +11 -2
  149. data/lib/jade/type/base.rb +26 -0
  150. data/lib/jade/type/function.rb +11 -3
  151. data/lib/jade/type.rb +36 -10
  152. data/lib/jade/version.rb +1 -1
  153. metadata +35 -2
data/lib/jade/type.rb CHANGED
@@ -60,8 +60,8 @@ module Jade
60
60
  [args, return_type]
61
61
  end
62
62
 
63
- def anonymous_record(fields, row_var)
64
- AnonymousRecord[fields, row_var]
63
+ def anonymous_record(fields, row_var, display = nil)
64
+ AnonymousRecord[fields, row_var, display]
65
65
  end
66
66
 
67
67
  def constraint(interface_id, type, origin, index: :unindex)
@@ -246,17 +246,43 @@ module Jade
246
246
  [Type::Application[constructor_type, arg_types], union_cs + args_cs, args_map]
247
247
 
248
248
  in Symbol::TypeApplication(constructor:, args:)
249
- constructor_type, union_cs, union_vars =
250
- from_symbol_r(constructor, registry, var_gen, var_map)
249
+ resolved_head = constructor.is_a?(Symbol::TypeRef) ? registry.lookup(constructor) : constructor
250
+
251
+ if resolved_head.is_a?(Symbol::Alias)
252
+ arg_types, args_cs, args_map = args
253
+ .reduce([[], [], var_map]) do |(types, cs, local_map), sym|
254
+ from_symbol_r(sym, registry, var_gen, local_map)
255
+ .then { |(t, c, new_map)| [types + [t], cs + c, new_map] }
256
+ end
257
+
258
+ alias_var_map = resolved_head.type_params.map(&:name).zip(arg_types).to_h
259
+
260
+ body_type, body_cs, _ = from_symbol_r(resolved_head.body, registry, var_gen, alias_var_map)
261
+ display = arg_types.empty? ?
262
+ resolved_head.name :
263
+ "#{resolved_head.name}(#{arg_types.join(', ')})"
264
+ [display_as(body_type, display), args_cs + body_cs, args_map]
265
+ else
266
+ constructor_type, union_cs, union_vars =
267
+ from_symbol_r(constructor, registry, var_gen, var_map)
251
268
 
252
- arg_types, args_cs, args_map = args
253
- .reduce([[], [], union_vars]) do |(types, cs, local_map), sym|
254
- from_symbol_r(sym, registry, var_gen, local_map)
255
- .then { |(t, c, new_map)| [types + [t], cs + c, new_map] }
256
- end
269
+ arg_types, args_cs, args_map = args
270
+ .reduce([[], [], union_vars]) do |(types, cs, local_map), sym|
271
+ from_symbol_r(sym, registry, var_gen, local_map)
272
+ .then { |(t, c, new_map)| [types + [t], cs + c, new_map] }
273
+ end
274
+
275
+ [Type.constructor(constructor.qualified_name).apply(arg_types), union_cs + args_cs, args_map]
276
+ end
257
277
 
258
- [Type.constructor(constructor.qualified_name).apply(arg_types), union_cs + args_cs, args_map]
278
+ in Symbol::Alias(body:)
279
+ from_symbol_r(body, registry, var_gen, var_map)
280
+ .then { |(type, cs, map)| [display_as(type, symbol.name), cs, map] }
259
281
  end
260
282
  end
283
+
284
+ def display_as(type, name)
285
+ type.is_a?(Displayable) ? type.display_as(name) : type
286
+ end
261
287
  end
262
288
  end
data/lib/jade/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jade
2
- VERSION = '0.9.0'
2
+ VERSION = '0.10.1'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jade-lang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Cornu
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-08-21 00:00:00.000000000 Z
10
+ date: 2026-09-11 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: base64
@@ -55,7 +55,9 @@ files:
55
55
  - lib/jade/calendar/runtime.rb
56
56
  - lib/jade/cli.rb
57
57
  - lib/jade/cli/check.rb
58
+ - lib/jade/cli/eject.rb
58
59
  - lib/jade/cli/fmt.rb
60
+ - lib/jade/cli/init.rb
59
61
  - lib/jade/cli/lsp.rb
60
62
  - lib/jade/cli/q.rb
61
63
  - lib/jade/clock/runtime.rb
@@ -78,6 +80,7 @@ files:
78
80
  - lib/jade/codegen/inline.rb
79
81
  - lib/jade/codegen/inlines.rb
80
82
  - lib/jade/codegen/method_names.rb
83
+ - lib/jade/codegen/names.rb
81
84
  - lib/jade/codegen/pattern/constructor.rb
82
85
  - lib/jade/codegen/port_codec.rb
83
86
  - lib/jade/codegen/pretty.rb
@@ -122,7 +125,10 @@ files:
122
125
  - lib/jade/frontend/forward_declaration.rb
123
126
  - lib/jade/frontend/forward_declaration/body.rb
124
127
  - lib/jade/frontend/forward_declaration/error.rb
128
+ - lib/jade/frontend/forward_declaration/error/alias_expansion.rb
125
129
  - lib/jade/frontend/forward_declaration/error/bad_import.rb
130
+ - lib/jade/frontend/forward_declaration/error/duplicate_constructor_name.rb
131
+ - lib/jade/frontend/forward_declaration/error/duplicate_type_name.rb
126
132
  - lib/jade/frontend/forward_declaration/error/exposed_type_not_found.rb
127
133
  - lib/jade/frontend/forward_declaration/error/exposed_value_not_found.rb
128
134
  - lib/jade/frontend/forward_declaration/error/module_not_found.rb
@@ -140,10 +146,16 @@ files:
140
146
  - lib/jade/frontend/forward_declaration/interop_import_declaration.rb
141
147
  - lib/jade/frontend/forward_declaration/module.rb
142
148
  - lib/jade/frontend/forward_declaration/struct_declaration.rb
149
+ - lib/jade/frontend/forward_declaration/type_alias_declaration.rb
143
150
  - lib/jade/frontend/forward_declaration/type_declaration.rb
144
151
  - lib/jade/frontend/pattern_analysis.rb
145
152
  - lib/jade/frontend/pattern_analysis/exhaustiveness.rb
146
153
  - lib/jade/frontend/pattern_analysis/matrix.rb
154
+ - lib/jade/frontend/pattern_analysis/pattern.rb
155
+ - lib/jade/frontend/pattern_analysis/redundancy.rb
156
+ - lib/jade/frontend/pattern_analysis/signature.rb
157
+ - lib/jade/frontend/pattern_analysis/usefulness.rb
158
+ - lib/jade/frontend/pattern_analysis/witnesses.rb
147
159
  - lib/jade/frontend/semantic_analysis.rb
148
160
  - lib/jade/frontend/semantic_analysis/assign.rb
149
161
  - lib/jade/frontend/semantic_analysis/body.rb
@@ -160,6 +172,7 @@ files:
160
172
  - lib/jade/frontend/semantic_analysis/error/duplicate_function_declaration.rb
161
173
  - lib/jade/frontend/semantic_analysis/error/duplicate_implementation.rb
162
174
  - lib/jade/frontend/semantic_analysis/error/duplicate_record_field.rb
175
+ - lib/jade/frontend/semantic_analysis/error/implementation_on_alias.rb
163
176
  - lib/jade/frontend/semantic_analysis/error/invalid_list_rest_pattern.rb
164
177
  - lib/jade/frontend/semantic_analysis/error/kwargs_on_non_constructor.rb
165
178
  - lib/jade/frontend/semantic_analysis/error/missing_exposing_clause.rb
@@ -168,11 +181,13 @@ files:
168
181
  - lib/jade/frontend/semantic_analysis/error/missing_implementation_function.rb
169
182
  - lib/jade/frontend/semantic_analysis/error/module_not_found.rb
170
183
  - lib/jade/frontend/semantic_analysis/error/nested_task_port.rb
184
+ - lib/jade/frontend/semantic_analysis/error/no_base_case.rb
171
185
  - lib/jade/frontend/semantic_analysis/error/non_task_port.rb
172
186
  - lib/jade/frontend/semantic_analysis/error/orphan_implementation.rb
173
187
  - lib/jade/frontend/semantic_analysis/error/placeholder_not_allowed.rb
174
188
  - lib/jade/frontend/semantic_analysis/error/predicate_must_return_bool.rb
175
189
  - lib/jade/frontend/semantic_analysis/error/predicate_name_not_allowed.rb
190
+ - lib/jade/frontend/semantic_analysis/error/recursive_type_alias.rb
176
191
  - lib/jade/frontend/semantic_analysis/error/shadowing_error.rb
177
192
  - lib/jade/frontend/semantic_analysis/error/type_args_mismatch.rb
178
193
  - lib/jade/frontend/semantic_analysis/error/type_param_required.rb
@@ -191,6 +206,7 @@ files:
191
206
  - lib/jade/frontend/semantic_analysis/implementation.rb
192
207
  - lib/jade/frontend/semantic_analysis/implementation_function.rb
193
208
  - lib/jade/frontend/semantic_analysis/import_declaration.rb
209
+ - lib/jade/frontend/semantic_analysis/inhabitedness.rb
194
210
  - lib/jade/frontend/semantic_analysis/interface_declaration.rb
195
211
  - lib/jade/frontend/semantic_analysis/interop_import_declaration.rb
196
212
  - lib/jade/frontend/semantic_analysis/keyed_call.rb
@@ -204,6 +220,7 @@ files:
204
220
  - lib/jade/frontend/semantic_analysis/pattern_constructor.rb
205
221
  - lib/jade/frontend/semantic_analysis/pattern_list.rb
206
222
  - lib/jade/frontend/semantic_analysis/pattern_literal.rb
223
+ - lib/jade/frontend/semantic_analysis/pattern_range.rb
207
224
  - lib/jade/frontend/semantic_analysis/pattern_record.rb
208
225
  - lib/jade/frontend/semantic_analysis/pattern_wildcard.rb
209
226
  - lib/jade/frontend/semantic_analysis/qualified_access.rb
@@ -213,11 +230,14 @@ files:
213
230
  - lib/jade/frontend/semantic_analysis/record_update.rb
214
231
  - lib/jade/frontend/semantic_analysis/struct_declaration.rb
215
232
  - lib/jade/frontend/semantic_analysis/tuple.rb
233
+ - lib/jade/frontend/semantic_analysis/type_alias_declaration.rb
234
+ - lib/jade/frontend/semantic_analysis/type_alias_declaration/cycle_detection.rb
216
235
  - lib/jade/frontend/semantic_analysis/type_declaration.rb
217
236
  - lib/jade/frontend/semantic_analysis/variable_reference.rb
218
237
  - lib/jade/frontend/semantic_analysis/variant_declaration.rb
219
238
  - lib/jade/frontend/type_checking.rb
220
239
  - lib/jade/frontend/type_checking/canonicalize.rb
240
+ - lib/jade/frontend/type_checking/cascade.rb
221
241
  - lib/jade/frontend/type_checking/constraints.rb
222
242
  - lib/jade/frontend/type_checking/constraints/deriving.rb
223
243
  - lib/jade/frontend/type_checking/constraints/deriving/decodable.rb
@@ -230,6 +250,9 @@ files:
230
250
  - lib/jade/frontend/type_checking/error.rb
231
251
  - lib/jade/frontend/type_checking/error/case_of_branches_type_mismatch.rb
232
252
  - lib/jade/frontend/type_checking/error/derivation_failed.rb
253
+ - lib/jade/frontend/type_checking/error/display.rb
254
+ - lib/jade/frontend/type_checking/error/division_by_zero.rb
255
+ - lib/jade/frontend/type_checking/error/empty_range_pattern.rb
233
256
  - lib/jade/frontend/type_checking/error/function_body_type_mismatch.rb
234
257
  - lib/jade/frontend/type_checking/error/function_call_type_mismatch.rb
235
258
  - lib/jade/frontend/type_checking/error/if_branch_type_mismatch.rb
@@ -242,8 +265,12 @@ files:
242
265
  - lib/jade/frontend/type_checking/error/pattern_type_mismatch.rb
243
266
  - lib/jade/frontend/type_checking/error/port_not_decodable.rb
244
267
  - lib/jade/frontend/type_checking/error/port_not_encodable.rb
268
+ - lib/jade/frontend/type_checking/error/range_pattern_type.rb
245
269
  - lib/jade/frontend/type_checking/error/record_access_type_mismatch.rb
270
+ - lib/jade/frontend/type_checking/error/record_update_type_mismatch.rb
271
+ - lib/jade/frontend/type_checking/error/recursive_derivation.rb
246
272
  - lib/jade/frontend/type_checking/error/type_mismatch.rb
273
+ - lib/jade/frontend/type_checking/error/unreachable_branch.rb
247
274
  - lib/jade/frontend/type_checking/error/unresolved_constraint.rb
248
275
  - lib/jade/frontend/type_checking/expected.rb
249
276
  - lib/jade/frontend/type_checking/generalization.rb
@@ -253,6 +280,7 @@ files:
253
280
  - lib/jade/frontend/type_checking/inference/body.rb
254
281
  - lib/jade/frontend/type_checking/inference/case_of.rb
255
282
  - lib/jade/frontend/type_checking/inference/constructor_reference.rb
283
+ - lib/jade/frontend/type_checking/inference/division.rb
256
284
  - lib/jade/frontend/type_checking/inference/function_call.rb
257
285
  - lib/jade/frontend/type_checking/inference/function_declaration.rb
258
286
  - lib/jade/frontend/type_checking/inference/grouping.rb
@@ -273,6 +301,7 @@ files:
273
301
  - lib/jade/frontend/type_checking/inference/record_literal.rb
274
302
  - lib/jade/frontend/type_checking/inference/record_update.rb
275
303
  - lib/jade/frontend/type_checking/inference/struct_declaration.rb
304
+ - lib/jade/frontend/type_checking/inference/type_alias_declaration.rb
276
305
  - lib/jade/frontend/type_checking/inference/type_declaration.rb
277
306
  - lib/jade/frontend/type_checking/inference/variable_reference.rb
278
307
  - lib/jade/frontend/type_checking/instantiation.rb
@@ -302,6 +331,7 @@ files:
302
331
  - lib/jade/lsp/snippets.rb
303
332
  - lib/jade/lsp/state.rb
304
333
  - lib/jade/module_loader.rb
334
+ - lib/jade/module_loader/build.rb
305
335
  - lib/jade/module_loader/cache.rb
306
336
  - lib/jade/module_loader/dependency_graph.rb
307
337
  - lib/jade/module_loader/dependency_resolver.rb
@@ -336,6 +366,8 @@ files:
336
366
  - lib/jade/stdlib/intrinsics.rb
337
367
  - lib/jade/stdlib/list.rb
338
368
  - lib/jade/stdlib/maybe.rb
369
+ - lib/jade/stdlib/number.rb
370
+ - lib/jade/stdlib/range.rb
339
371
  - lib/jade/stdlib/result.rb
340
372
  - lib/jade/stdlib/set.rb
341
373
  - lib/jade/stdlib/show.rb
@@ -344,6 +376,7 @@ files:
344
376
  - lib/jade/stdlib/text.rb
345
377
  - lib/jade/stdlib/tuple.rb
346
378
  - lib/jade/symbol.rb
379
+ - lib/jade/symbol/alias.rb
347
380
  - lib/jade/symbol/anonymous_record.rb
348
381
  - lib/jade/symbol/base.rb
349
382
  - lib/jade/symbol/constructor.rb