eyelang 1.7.6 → 1.7.7

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 (258) hide show
  1. package/conformance-report.md +17 -18
  2. package/package.json +1 -1
  3. package/test/conformance/README.md +2 -0
  4. package/test/run-regression.mjs +1 -0
  5. /package/test/conformance/cases/{044_findall_user_goal.eye → aggregation/044_findall_user_goal.eye} +0 -0
  6. /package/test/conformance/cases/{044_findall_user_goal.query → aggregation/044_findall_user_goal.query} +0 -0
  7. /package/test/conformance/cases/{057_countall_empty_and_nonempty.eye → aggregation/057_countall_empty_and_nonempty.eye} +0 -0
  8. /package/test/conformance/cases/{057_countall_empty_and_nonempty.query → aggregation/057_countall_empty_and_nonempty.query} +0 -0
  9. /package/test/conformance/cases/{058_sumall_numeric_template.eye → aggregation/058_sumall_numeric_template.eye} +0 -0
  10. /package/test/conformance/cases/{058_sumall_numeric_template.query → aggregation/058_sumall_numeric_template.query} +0 -0
  11. /package/test/conformance/cases/{059_aggregate_min_template.eye → aggregation/059_aggregate_min_template.eye} +0 -0
  12. /package/test/conformance/cases/{059_aggregate_min_template.query → aggregation/059_aggregate_min_template.query} +0 -0
  13. /package/test/conformance/cases/{060_aggregate_max_compound_key.eye → aggregation/060_aggregate_max_compound_key.eye} +0 -0
  14. /package/test/conformance/cases/{060_aggregate_max_compound_key.query → aggregation/060_aggregate_max_compound_key.query} +0 -0
  15. /package/test/conformance/cases/{075_aggregation_edges.eye → aggregation/075_aggregation_edges.eye} +0 -0
  16. /package/test/conformance/cases/{098_aggregation_nested_templates.eye → aggregation/098_aggregation_nested_templates.eye} +0 -0
  17. /package/test/conformance/cases/{024_numeric_literal_readback.eye → arithmetic/024_numeric_literal_readback.eye} +0 -0
  18. /package/test/conformance/cases/{029_arithmetic_and_comparison.eye → arithmetic/029_arithmetic_and_comparison.eye} +0 -0
  19. /package/test/conformance/cases/{029_arithmetic_and_comparison.query → arithmetic/029_arithmetic_and_comparison.query} +0 -0
  20. /package/test/conformance/cases/{039_numeric_functions.eye → arithmetic/039_numeric_functions.eye} +0 -0
  21. /package/test/conformance/cases/{039_numeric_functions.query → arithmetic/039_numeric_functions.query} +0 -0
  22. /package/test/conformance/cases/{040_between_enumeration.eye → arithmetic/040_between_enumeration.eye} +0 -0
  23. /package/test/conformance/cases/{040_between_enumeration.query → arithmetic/040_between_enumeration.query} +0 -0
  24. /package/test/conformance/cases/{041_smallest_divisor.eye → arithmetic/041_smallest_divisor.eye} +0 -0
  25. /package/test/conformance/cases/{041_smallest_divisor.query → arithmetic/041_smallest_divisor.query} +0 -0
  26. /package/test/conformance/cases/{054_numeric_and_lexical_comparison.eye → arithmetic/054_numeric_and_lexical_comparison.eye} +0 -0
  27. /package/test/conformance/cases/{054_numeric_and_lexical_comparison.query → arithmetic/054_numeric_and_lexical_comparison.query} +0 -0
  28. /package/test/conformance/cases/{061_date_difference.eye → arithmetic/061_date_difference.eye} +0 -0
  29. /package/test/conformance/cases/{062_reusable_numeric_builtins.eye → arithmetic/062_reusable_numeric_builtins.eye} +0 -0
  30. /package/test/conformance/cases/{066_numeric_edges.eye → arithmetic/066_numeric_edges.eye} +0 -0
  31. /package/test/conformance/cases/{079_big_integer_arithmetic.eye → arithmetic/079_big_integer_arithmetic.eye} +0 -0
  32. /package/test/conformance/cases/{080_rounding_modes.eye → arithmetic/080_rounding_modes.eye} +0 -0
  33. /package/test/conformance/cases/{081_zero_safe_numeric_functions.eye → arithmetic/081_zero_safe_numeric_functions.eye} +0 -0
  34. /package/test/conformance/cases/{082_comparison_semantics.eye → arithmetic/082_comparison_semantics.eye} +0 -0
  35. /package/test/conformance/cases/{083_between_modes_and_empty_ranges.eye → arithmetic/083_between_modes_and_empty_ranges.eye} +0 -0
  36. /package/test/conformance/cases/{008_graphic_atoms.eye → atoms/008_graphic_atoms.eye} +0 -0
  37. /package/test/conformance/cases/{008_graphic_atoms.query → atoms/008_graphic_atoms.query} +0 -0
  38. /package/test/conformance/cases/{016_arity_zero_atom.eye → atoms/016_arity_zero_atom.eye} +0 -0
  39. /package/test/conformance/cases/{018_quoted_atom_readback.eye → atoms/018_quoted_atom_readback.eye} +0 -0
  40. /package/test/conformance/cases/{018_quoted_atom_readback.query → atoms/018_quoted_atom_readback.query} +0 -0
  41. /package/test/conformance/cases/{103_angle_iri_atoms.eye → atoms/103_angle_iri_atoms.eye} +0 -0
  42. /package/test/conformance/cases/{037_matching_and_comparison.eye → builtins/037_matching_and_comparison.eye} +0 -0
  43. /package/test/conformance/cases/{037_matching_and_comparison.query → builtins/037_matching_and_comparison.query} +0 -0
  44. /package/test/conformance/cases/{076_composed_reusable_builtins.eye → builtins/076_composed_reusable_builtins.eye} +0 -0
  45. /package/test/conformance/cases/{100_reusable_builtin_workflow.eye → builtins/100_reusable_builtin_workflow.eye} +0 -0
  46. /package/test/conformance/cases/{032_holds_parts.eye → context/032_holds_parts.eye} +0 -0
  47. /package/test/conformance/cases/{051_nested_holds_parts.eye → context/051_nested_holds_parts.eye} +0 -0
  48. /package/test/conformance/cases/{052_holds_member.eye → context/052_holds_member.eye} +0 -0
  49. /package/test/conformance/cases/{094_context_holds_enumeration.eye → context/094_context_holds_enumeration.eye} +0 -0
  50. /package/test/conformance/cases/{014_failure_filters_answers.eye → control/014_failure_filters_answers.eye} +0 -0
  51. /package/test/conformance/cases/{014_failure_filters_answers.query → control/014_failure_filters_answers.query} +0 -0
  52. /package/test/conformance/cases/{043_once_user_predicate.eye → control/043_once_user_predicate.eye} +0 -0
  53. /package/test/conformance/cases/{043_once_user_predicate.query → control/043_once_user_predicate.query} +0 -0
  54. /package/test/conformance/cases/{074_forall_edges.eye → control/074_forall_edges.eye} +0 -0
  55. /package/test/conformance/cases/{097_control_negation_once_forall.eye → control/097_control_negation_once_forall.eye} +0 -0
  56. /package/test/conformance/cases/{104_mode_determinism_declarations.eye → declarations/104_mode_determinism_declarations.eye} +0 -0
  57. /package/test/conformance/cases/{005_list_deconstruction.eye → lists/005_list_deconstruction.eye} +0 -0
  58. /package/test/conformance/cases/{005_list_deconstruction.query → lists/005_list_deconstruction.query} +0 -0
  59. /package/test/conformance/cases/{015_improper_list_unification.eye → lists/015_improper_list_unification.eye} +0 -0
  60. /package/test/conformance/cases/{015_improper_list_unification.query → lists/015_improper_list_unification.query} +0 -0
  61. /package/test/conformance/cases/{020_nested_list_terms.eye → lists/020_nested_list_terms.eye} +0 -0
  62. /package/test/conformance/cases/{020_nested_list_terms.query → lists/020_nested_list_terms.query} +0 -0
  63. /package/test/conformance/cases/{031_lists_aggregation_ordering.eye → lists/031_lists_aggregation_ordering.eye} +0 -0
  64. /package/test/conformance/cases/{031_lists_aggregation_ordering.query → lists/031_lists_aggregation_ordering.query} +0 -0
  65. /package/test/conformance/cases/{035_list_relations.eye → lists/035_list_relations.eye} +0 -0
  66. /package/test/conformance/cases/{035_list_relations.query → lists/035_list_relations.query} +0 -0
  67. /package/test/conformance/cases/{036_append_splits.eye → lists/036_append_splits.eye} +0 -0
  68. /package/test/conformance/cases/{036_append_splits.query → lists/036_append_splits.query} +0 -0
  69. /package/test/conformance/cases/{045_sort_deduplicates_atoms.eye → lists/045_sort_deduplicates_atoms.eye} +0 -0
  70. /package/test/conformance/cases/{045_sort_deduplicates_atoms.query → lists/045_sort_deduplicates_atoms.query} +0 -0
  71. /package/test/conformance/cases/{046_append_bound_prefix_suffix.eye → lists/046_append_bound_prefix_suffix.eye} +0 -0
  72. /package/test/conformance/cases/{046_append_bound_prefix_suffix.query → lists/046_append_bound_prefix_suffix.query} +0 -0
  73. /package/test/conformance/cases/{047_nth0_index_generation.eye → lists/047_nth0_index_generation.eye} +0 -0
  74. /package/test/conformance/cases/{047_nth0_index_generation.query → lists/047_nth0_index_generation.query} +0 -0
  75. /package/test/conformance/cases/{048_set_nth0_edges.eye → lists/048_set_nth0_edges.eye} +0 -0
  76. /package/test/conformance/cases/{048_set_nth0_edges.query → lists/048_set_nth0_edges.query} +0 -0
  77. /package/test/conformance/cases/{049_select_duplicate_occurrences.eye → lists/049_select_duplicate_occurrences.eye} +0 -0
  78. /package/test/conformance/cases/{049_select_duplicate_occurrences.query → lists/049_select_duplicate_occurrences.query} +0 -0
  79. /package/test/conformance/cases/{063_reusable_list_builtins.eye → lists/063_reusable_list_builtins.eye} +0 -0
  80. /package/test/conformance/cases/{067_list_edges.eye → lists/067_list_edges.eye} +0 -0
  81. /package/test/conformance/cases/{068_list_generation_order.eye → lists/068_list_generation_order.eye} +0 -0
  82. /package/test/conformance/cases/{069_list_summaries_and_sets.eye → lists/069_list_summaries_and_sets.eye} +0 -0
  83. /package/test/conformance/cases/{084_append_and_select_composition.eye → lists/084_append_and_select_composition.eye} +0 -0
  84. /package/test/conformance/cases/{085_nth_and_update_edges.eye → lists/085_nth_and_update_edges.eye} +0 -0
  85. /package/test/conformance/cases/{086_slicing_pipeline.eye → lists/086_slicing_pipeline.eye} +0 -0
  86. /package/test/conformance/cases/{087_sort_reverse_length.eye → lists/087_sort_reverse_length.eye} +0 -0
  87. /package/test/conformance/cases/{088_list_summaries_failures.eye → lists/088_list_summaries_failures.eye} +0 -0
  88. /package/test/conformance/cases/{027_default_derived_output.eye → materialize/027_default_derived_output.eye} +0 -0
  89. /package/test/conformance/cases/{028_materialize_focus.eye → materialize/028_materialize_focus.eye} +0 -0
  90. /package/test/conformance/cases/{053_materialize_excludes_source_fact.eye → materialize/053_materialize_excludes_source_fact.eye} +0 -0
  91. /package/test/conformance/cases/{099_materialize_multiple_arities.eye → materialize/099_materialize_multiple_arities.eye} +0 -0
  92. /package/test/conformance/cases/{033_negation_once_generators.eye → negation/033_negation_once_generators.eye} +0 -0
  93. /package/test/conformance/cases/{033_negation_once_generators.query → negation/033_negation_once_generators.query} +0 -0
  94. /package/test/conformance/cases/{042_negation_filter.eye → negation/042_negation_filter.eye} +0 -0
  95. /package/test/conformance/cases/{042_negation_filter.query → negation/042_negation_filter.query} +0 -0
  96. /package/test/conformance/cases/{050_not_member_filter.eye → negation/050_not_member_filter.eye} +0 -0
  97. /package/test/conformance/cases/{050_not_member_filter.query → negation/050_not_member_filter.query} +0 -0
  98. /package/test/conformance/cases/{001_fact_output.eye → rules/001_fact_output.eye} +0 -0
  99. /package/test/conformance/cases/{002_rule_recursion.eye → rules/002_rule_recursion.eye} +0 -0
  100. /package/test/conformance/cases/{002_rule_recursion.query → rules/002_rule_recursion.query} +0 -0
  101. /package/test/conformance/cases/{011_predicate_arity.eye → rules/011_predicate_arity.eye} +0 -0
  102. /package/test/conformance/cases/{011_predicate_arity.query → rules/011_predicate_arity.query} +0 -0
  103. /package/test/conformance/cases/{013_multiple_clauses_order.eye → rules/013_multiple_clauses_order.eye} +0 -0
  104. /package/test/conformance/cases/{013_multiple_clauses_order.query → rules/013_multiple_clauses_order.query} +0 -0
  105. /package/test/conformance/cases/{017_three_step_recursion.eye → rules/017_three_step_recursion.eye} +0 -0
  106. /package/test/conformance/cases/{017_three_step_recursion.query → rules/017_three_step_recursion.query} +0 -0
  107. /package/test/conformance/cases/{022_rule_head_structure.eye → rules/022_rule_head_structure.eye} +0 -0
  108. /package/test/conformance/cases/{077_recursive_path_with_lists.eye → rules/077_recursive_path_with_lists.eye} +0 -0
  109. /package/test/conformance/cases/{078_mutual_recursion_with_arithmetic.eye → rules/078_mutual_recursion_with_arithmetic.eye} +0 -0
  110. /package/test/conformance/cases/{023_quoted_escapes_readback.eye → strings/023_quoted_escapes_readback.eye} +0 -0
  111. /package/test/conformance/cases/{030_strings_and_atoms.eye → strings/030_strings_and_atoms.eye} +0 -0
  112. /package/test/conformance/cases/{030_strings_and_atoms.query → strings/030_strings_and_atoms.query} +0 -0
  113. /package/test/conformance/cases/{055_string_matching_filters.eye → strings/055_string_matching_filters.eye} +0 -0
  114. /package/test/conformance/cases/{055_string_matching_filters.query → strings/055_string_matching_filters.query} +0 -0
  115. /package/test/conformance/cases/{056_string_and_atom_concat.eye → strings/056_string_and_atom_concat.eye} +0 -0
  116. /package/test/conformance/cases/{056_string_and_atom_concat.query → strings/056_string_and_atom_concat.query} +0 -0
  117. /package/test/conformance/cases/{064_reusable_string_builtins.eye → strings/064_reusable_string_builtins.eye} +0 -0
  118. /package/test/conformance/cases/{070_matches_named_captures.eye → strings/070_matches_named_captures.eye} +0 -0
  119. /package/test/conformance/cases/{071_string_edges.eye → strings/071_string_edges.eye} +0 -0
  120. /package/test/conformance/cases/{072_string_conversions.eye → strings/072_string_conversions.eye} +0 -0
  121. /package/test/conformance/cases/{089_string_split_join_pipeline.eye → strings/089_string_split_join_pipeline.eye} +0 -0
  122. /package/test/conformance/cases/{090_string_substring_replace_edges.eye → strings/090_string_substring_replace_edges.eye} +0 -0
  123. /package/test/conformance/cases/{091_string_case_and_trim.eye → strings/091_string_case_and_trim.eye} +0 -0
  124. /package/test/conformance/cases/{092_scalar_string_conversions.eye → strings/092_scalar_string_conversions.eye} +0 -0
  125. /package/test/conformance/cases/{093_regex_named_captures_context.eye → strings/093_regex_named_captures_context.eye} +0 -0
  126. /package/test/conformance/cases/{004_conjunction_and_parentheses.eye → syntax/004_conjunction_and_parentheses.eye} +0 -0
  127. /package/test/conformance/cases/{004_conjunction_and_parentheses.query → syntax/004_conjunction_and_parentheses.query} +0 -0
  128. /package/test/conformance/cases/{006_comma_formula_data.eye → syntax/006_comma_formula_data.eye} +0 -0
  129. /package/test/conformance/cases/{006_comma_formula_data.query → syntax/006_comma_formula_data.query} +0 -0
  130. /package/test/conformance/cases/{009_comments_and_whitespace.eye → syntax/009_comments_and_whitespace.eye} +0 -0
  131. /package/test/conformance/cases/{009_comments_and_whitespace.query → syntax/009_comments_and_whitespace.query} +0 -0
  132. /package/test/conformance/cases/{019_parenthesized_three_conjuncts.eye → syntax/019_parenthesized_three_conjuncts.eye} +0 -0
  133. /package/test/conformance/cases/{019_parenthesized_three_conjuncts.query → syntax/019_parenthesized_three_conjuncts.query} +0 -0
  134. /package/test/conformance/cases/{025_body_parentheses_with_formula_data.eye → syntax/025_body_parentheses_with_formula_data.eye} +0 -0
  135. /package/test/conformance/cases/{038_table_declaration.eye → table/038_table_declaration.eye} +0 -0
  136. /package/test/conformance/cases/{038_table_declaration.query → table/038_table_declaration.query} +0 -0
  137. /package/test/conformance/cases/{102_table_declaration.eye → table/102_table_declaration.eye} +0 -0
  138. /package/test/conformance/cases/{003_terms_and_readback.eye → terms/003_terms_and_readback.eye} +0 -0
  139. /package/test/conformance/cases/{003_terms_and_readback.query → terms/003_terms_and_readback.query} +0 -0
  140. /package/test/conformance/cases/{065_reusable_term_control_builtins.eye → terms/065_reusable_term_control_builtins.eye} +0 -0
  141. /package/test/conformance/cases/{073_term_introspection_edges.eye → terms/073_term_introspection_edges.eye} +0 -0
  142. /package/test/conformance/cases/{095_term_introspection_roundtrip.eye → terms/095_term_introspection_roundtrip.eye} +0 -0
  143. /package/test/conformance/cases/{096_functor_scalar_edges.eye → terms/096_functor_scalar_edges.eye} +0 -0
  144. /package/test/conformance/cases/{012_nested_compound_unification.eye → unification/012_nested_compound_unification.eye} +0 -0
  145. /package/test/conformance/cases/{012_nested_compound_unification.query → unification/012_nested_compound_unification.query} +0 -0
  146. /package/test/conformance/cases/{021_repeated_variable_head.eye → unification/021_repeated_variable_head.eye} +0 -0
  147. /package/test/conformance/cases/{034_equality_and_inequality.eye → unification/034_equality_and_inequality.eye} +0 -0
  148. /package/test/conformance/cases/{034_equality_and_inequality.query → unification/034_equality_and_inequality.query} +0 -0
  149. /package/test/conformance/cases/{007_anonymous_variables.eye → variables/007_anonymous_variables.eye} +0 -0
  150. /package/test/conformance/cases/{007_anonymous_variables.query → variables/007_anonymous_variables.query} +0 -0
  151. /package/test/conformance/cases/{010_variable_scope_and_reuse.eye → variables/010_variable_scope_and_reuse.eye} +0 -0
  152. /package/test/conformance/cases/{010_variable_scope_and_reuse.query → variables/010_variable_scope_and_reuse.query} +0 -0
  153. /package/test/conformance/cases/{026_question_underscore_named_variable_reuse.eye → variables/026_question_underscore_named_variable_reuse.eye} +0 -0
  154. /package/test/conformance/cases/{101_question_mark_variables.eye → variables/101_question_mark_variables.eye} +0 -0
  155. /package/test/conformance/expected/{044_findall_user_goal.eye → aggregation/044_findall_user_goal.eye} +0 -0
  156. /package/test/conformance/expected/{057_countall_empty_and_nonempty.eye → aggregation/057_countall_empty_and_nonempty.eye} +0 -0
  157. /package/test/conformance/expected/{058_sumall_numeric_template.eye → aggregation/058_sumall_numeric_template.eye} +0 -0
  158. /package/test/conformance/expected/{059_aggregate_min_template.eye → aggregation/059_aggregate_min_template.eye} +0 -0
  159. /package/test/conformance/expected/{060_aggregate_max_compound_key.eye → aggregation/060_aggregate_max_compound_key.eye} +0 -0
  160. /package/test/conformance/expected/{075_aggregation_edges.eye → aggregation/075_aggregation_edges.eye} +0 -0
  161. /package/test/conformance/expected/{098_aggregation_nested_templates.eye → aggregation/098_aggregation_nested_templates.eye} +0 -0
  162. /package/test/conformance/expected/{024_numeric_literal_readback.eye → arithmetic/024_numeric_literal_readback.eye} +0 -0
  163. /package/test/conformance/expected/{029_arithmetic_and_comparison.eye → arithmetic/029_arithmetic_and_comparison.eye} +0 -0
  164. /package/test/conformance/expected/{039_numeric_functions.eye → arithmetic/039_numeric_functions.eye} +0 -0
  165. /package/test/conformance/expected/{040_between_enumeration.eye → arithmetic/040_between_enumeration.eye} +0 -0
  166. /package/test/conformance/expected/{041_smallest_divisor.eye → arithmetic/041_smallest_divisor.eye} +0 -0
  167. /package/test/conformance/expected/{054_numeric_and_lexical_comparison.eye → arithmetic/054_numeric_and_lexical_comparison.eye} +0 -0
  168. /package/test/conformance/expected/{061_date_difference.eye → arithmetic/061_date_difference.eye} +0 -0
  169. /package/test/conformance/expected/{062_reusable_numeric_builtins.eye → arithmetic/062_reusable_numeric_builtins.eye} +0 -0
  170. /package/test/conformance/expected/{066_numeric_edges.eye → arithmetic/066_numeric_edges.eye} +0 -0
  171. /package/test/conformance/expected/{079_big_integer_arithmetic.eye → arithmetic/079_big_integer_arithmetic.eye} +0 -0
  172. /package/test/conformance/expected/{080_rounding_modes.eye → arithmetic/080_rounding_modes.eye} +0 -0
  173. /package/test/conformance/expected/{081_zero_safe_numeric_functions.eye → arithmetic/081_zero_safe_numeric_functions.eye} +0 -0
  174. /package/test/conformance/expected/{082_comparison_semantics.eye → arithmetic/082_comparison_semantics.eye} +0 -0
  175. /package/test/conformance/expected/{083_between_modes_and_empty_ranges.eye → arithmetic/083_between_modes_and_empty_ranges.eye} +0 -0
  176. /package/test/conformance/expected/{008_graphic_atoms.eye → atoms/008_graphic_atoms.eye} +0 -0
  177. /package/test/conformance/expected/{016_arity_zero_atom.eye → atoms/016_arity_zero_atom.eye} +0 -0
  178. /package/test/conformance/expected/{018_quoted_atom_readback.eye → atoms/018_quoted_atom_readback.eye} +0 -0
  179. /package/test/conformance/expected/{103_angle_iri_atoms.eye → atoms/103_angle_iri_atoms.eye} +0 -0
  180. /package/test/conformance/expected/{037_matching_and_comparison.eye → builtins/037_matching_and_comparison.eye} +0 -0
  181. /package/test/conformance/expected/{076_composed_reusable_builtins.eye → builtins/076_composed_reusable_builtins.eye} +0 -0
  182. /package/test/conformance/expected/{100_reusable_builtin_workflow.eye → builtins/100_reusable_builtin_workflow.eye} +0 -0
  183. /package/test/conformance/expected/{032_holds_parts.eye → context/032_holds_parts.eye} +0 -0
  184. /package/test/conformance/expected/{051_nested_holds_parts.eye → context/051_nested_holds_parts.eye} +0 -0
  185. /package/test/conformance/expected/{052_holds_member.eye → context/052_holds_member.eye} +0 -0
  186. /package/test/conformance/expected/{094_context_holds_enumeration.eye → context/094_context_holds_enumeration.eye} +0 -0
  187. /package/test/conformance/expected/{014_failure_filters_answers.eye → control/014_failure_filters_answers.eye} +0 -0
  188. /package/test/conformance/expected/{043_once_user_predicate.eye → control/043_once_user_predicate.eye} +0 -0
  189. /package/test/conformance/expected/{074_forall_edges.eye → control/074_forall_edges.eye} +0 -0
  190. /package/test/conformance/expected/{097_control_negation_once_forall.eye → control/097_control_negation_once_forall.eye} +0 -0
  191. /package/test/conformance/expected/{104_mode_determinism_declarations.eye → declarations/104_mode_determinism_declarations.eye} +0 -0
  192. /package/test/conformance/expected/{005_list_deconstruction.eye → lists/005_list_deconstruction.eye} +0 -0
  193. /package/test/conformance/expected/{015_improper_list_unification.eye → lists/015_improper_list_unification.eye} +0 -0
  194. /package/test/conformance/expected/{020_nested_list_terms.eye → lists/020_nested_list_terms.eye} +0 -0
  195. /package/test/conformance/expected/{031_lists_aggregation_ordering.eye → lists/031_lists_aggregation_ordering.eye} +0 -0
  196. /package/test/conformance/expected/{035_list_relations.eye → lists/035_list_relations.eye} +0 -0
  197. /package/test/conformance/expected/{036_append_splits.eye → lists/036_append_splits.eye} +0 -0
  198. /package/test/conformance/expected/{045_sort_deduplicates_atoms.eye → lists/045_sort_deduplicates_atoms.eye} +0 -0
  199. /package/test/conformance/expected/{046_append_bound_prefix_suffix.eye → lists/046_append_bound_prefix_suffix.eye} +0 -0
  200. /package/test/conformance/expected/{047_nth0_index_generation.eye → lists/047_nth0_index_generation.eye} +0 -0
  201. /package/test/conformance/expected/{048_set_nth0_edges.eye → lists/048_set_nth0_edges.eye} +0 -0
  202. /package/test/conformance/expected/{049_select_duplicate_occurrences.eye → lists/049_select_duplicate_occurrences.eye} +0 -0
  203. /package/test/conformance/expected/{063_reusable_list_builtins.eye → lists/063_reusable_list_builtins.eye} +0 -0
  204. /package/test/conformance/expected/{067_list_edges.eye → lists/067_list_edges.eye} +0 -0
  205. /package/test/conformance/expected/{068_list_generation_order.eye → lists/068_list_generation_order.eye} +0 -0
  206. /package/test/conformance/expected/{069_list_summaries_and_sets.eye → lists/069_list_summaries_and_sets.eye} +0 -0
  207. /package/test/conformance/expected/{084_append_and_select_composition.eye → lists/084_append_and_select_composition.eye} +0 -0
  208. /package/test/conformance/expected/{085_nth_and_update_edges.eye → lists/085_nth_and_update_edges.eye} +0 -0
  209. /package/test/conformance/expected/{086_slicing_pipeline.eye → lists/086_slicing_pipeline.eye} +0 -0
  210. /package/test/conformance/expected/{087_sort_reverse_length.eye → lists/087_sort_reverse_length.eye} +0 -0
  211. /package/test/conformance/expected/{088_list_summaries_failures.eye → lists/088_list_summaries_failures.eye} +0 -0
  212. /package/test/conformance/expected/{027_default_derived_output.eye → materialize/027_default_derived_output.eye} +0 -0
  213. /package/test/conformance/expected/{028_materialize_focus.eye → materialize/028_materialize_focus.eye} +0 -0
  214. /package/test/conformance/expected/{053_materialize_excludes_source_fact.eye → materialize/053_materialize_excludes_source_fact.eye} +0 -0
  215. /package/test/conformance/expected/{099_materialize_multiple_arities.eye → materialize/099_materialize_multiple_arities.eye} +0 -0
  216. /package/test/conformance/expected/{033_negation_once_generators.eye → negation/033_negation_once_generators.eye} +0 -0
  217. /package/test/conformance/expected/{042_negation_filter.eye → negation/042_negation_filter.eye} +0 -0
  218. /package/test/conformance/expected/{050_not_member_filter.eye → negation/050_not_member_filter.eye} +0 -0
  219. /package/test/conformance/expected/{001_fact_output.eye → rules/001_fact_output.eye} +0 -0
  220. /package/test/conformance/expected/{002_rule_recursion.eye → rules/002_rule_recursion.eye} +0 -0
  221. /package/test/conformance/expected/{011_predicate_arity.eye → rules/011_predicate_arity.eye} +0 -0
  222. /package/test/conformance/expected/{013_multiple_clauses_order.eye → rules/013_multiple_clauses_order.eye} +0 -0
  223. /package/test/conformance/expected/{017_three_step_recursion.eye → rules/017_three_step_recursion.eye} +0 -0
  224. /package/test/conformance/expected/{022_rule_head_structure.eye → rules/022_rule_head_structure.eye} +0 -0
  225. /package/test/conformance/expected/{077_recursive_path_with_lists.eye → rules/077_recursive_path_with_lists.eye} +0 -0
  226. /package/test/conformance/expected/{078_mutual_recursion_with_arithmetic.eye → rules/078_mutual_recursion_with_arithmetic.eye} +0 -0
  227. /package/test/conformance/expected/{023_quoted_escapes_readback.eye → strings/023_quoted_escapes_readback.eye} +0 -0
  228. /package/test/conformance/expected/{030_strings_and_atoms.eye → strings/030_strings_and_atoms.eye} +0 -0
  229. /package/test/conformance/expected/{055_string_matching_filters.eye → strings/055_string_matching_filters.eye} +0 -0
  230. /package/test/conformance/expected/{056_string_and_atom_concat.eye → strings/056_string_and_atom_concat.eye} +0 -0
  231. /package/test/conformance/expected/{064_reusable_string_builtins.eye → strings/064_reusable_string_builtins.eye} +0 -0
  232. /package/test/conformance/expected/{070_matches_named_captures.eye → strings/070_matches_named_captures.eye} +0 -0
  233. /package/test/conformance/expected/{071_string_edges.eye → strings/071_string_edges.eye} +0 -0
  234. /package/test/conformance/expected/{072_string_conversions.eye → strings/072_string_conversions.eye} +0 -0
  235. /package/test/conformance/expected/{089_string_split_join_pipeline.eye → strings/089_string_split_join_pipeline.eye} +0 -0
  236. /package/test/conformance/expected/{090_string_substring_replace_edges.eye → strings/090_string_substring_replace_edges.eye} +0 -0
  237. /package/test/conformance/expected/{091_string_case_and_trim.eye → strings/091_string_case_and_trim.eye} +0 -0
  238. /package/test/conformance/expected/{092_scalar_string_conversions.eye → strings/092_scalar_string_conversions.eye} +0 -0
  239. /package/test/conformance/expected/{093_regex_named_captures_context.eye → strings/093_regex_named_captures_context.eye} +0 -0
  240. /package/test/conformance/expected/{004_conjunction_and_parentheses.eye → syntax/004_conjunction_and_parentheses.eye} +0 -0
  241. /package/test/conformance/expected/{006_comma_formula_data.eye → syntax/006_comma_formula_data.eye} +0 -0
  242. /package/test/conformance/expected/{009_comments_and_whitespace.eye → syntax/009_comments_and_whitespace.eye} +0 -0
  243. /package/test/conformance/expected/{019_parenthesized_three_conjuncts.eye → syntax/019_parenthesized_three_conjuncts.eye} +0 -0
  244. /package/test/conformance/expected/{025_body_parentheses_with_formula_data.eye → syntax/025_body_parentheses_with_formula_data.eye} +0 -0
  245. /package/test/conformance/expected/{038_table_declaration.eye → table/038_table_declaration.eye} +0 -0
  246. /package/test/conformance/expected/{102_table_declaration.eye → table/102_table_declaration.eye} +0 -0
  247. /package/test/conformance/expected/{003_terms_and_readback.eye → terms/003_terms_and_readback.eye} +0 -0
  248. /package/test/conformance/expected/{065_reusable_term_control_builtins.eye → terms/065_reusable_term_control_builtins.eye} +0 -0
  249. /package/test/conformance/expected/{073_term_introspection_edges.eye → terms/073_term_introspection_edges.eye} +0 -0
  250. /package/test/conformance/expected/{095_term_introspection_roundtrip.eye → terms/095_term_introspection_roundtrip.eye} +0 -0
  251. /package/test/conformance/expected/{096_functor_scalar_edges.eye → terms/096_functor_scalar_edges.eye} +0 -0
  252. /package/test/conformance/expected/{012_nested_compound_unification.eye → unification/012_nested_compound_unification.eye} +0 -0
  253. /package/test/conformance/expected/{021_repeated_variable_head.eye → unification/021_repeated_variable_head.eye} +0 -0
  254. /package/test/conformance/expected/{034_equality_and_inequality.eye → unification/034_equality_and_inequality.eye} +0 -0
  255. /package/test/conformance/expected/{007_anonymous_variables.eye → variables/007_anonymous_variables.eye} +0 -0
  256. /package/test/conformance/expected/{010_variable_scope_and_reuse.eye → variables/010_variable_scope_and_reuse.eye} +0 -0
  257. /package/test/conformance/expected/{026_question_underscore_named_variable_reuse.eye → variables/026_question_underscore_named_variable_reuse.eye} +0 -0
  258. /package/test/conformance/expected/{101_question_mark_variables.eye → variables/101_question_mark_variables.eye} +0 -0
@@ -4,23 +4,22 @@ This report summarizes the file-based conformance corpus under `test/conformance
4
4
 
5
5
  | Category | Positive | Errors | Warnings | Proofs | Total |
6
6
  |---|---:|---:|---:|---:|---:|
7
- | aggregation | 5 | 0 | 0 | 0 | 5 |
8
- | arithmetic | 12 | 0 | 0 | 0 | 12 |
9
- | atoms | 14 | 5 | 0 | 0 | 19 |
10
- | builtins | 2 | 0 | 0 | 0 | 2 |
11
- | context | 3 | 0 | 0 | 0 | 3 |
12
- | control | 5 | 0 | 0 | 0 | 5 |
13
- | declarations | 5 | 0 | 0 | 0 | 5 |
14
- | legacy-numbered | 104 | 0 | 0 | 0 | 104 |
15
- | lists | 18 | 1 | 0 | 0 | 19 |
16
- | materialize | 2 | 0 | 0 | 0 | 2 |
17
- | negation | 3 | 0 | 13 | 0 | 16 |
7
+ | aggregation | 12 | 0 | 0 | 0 | 12 |
8
+ | arithmetic | 26 | 0 | 0 | 0 | 26 |
9
+ | atoms | 18 | 5 | 0 | 0 | 23 |
10
+ | builtins | 5 | 0 | 0 | 0 | 5 |
11
+ | context | 7 | 0 | 0 | 0 | 7 |
12
+ | control | 9 | 0 | 0 | 0 | 9 |
13
+ | declarations | 6 | 0 | 0 | 0 | 6 |
14
+ | lists | 38 | 1 | 0 | 0 | 39 |
15
+ | materialize | 6 | 0 | 0 | 0 | 6 |
16
+ | negation | 6 | 0 | 13 | 0 | 19 |
18
17
  | proofs | 0 | 0 | 0 | 8 | 8 |
19
- | rules | 2 | 1 | 0 | 0 | 3 |
20
- | strings | 15 | 0 | 0 | 0 | 15 |
21
- | syntax | 4 | 19 | 0 | 0 | 23 |
22
- | table | 2 | 0 | 0 | 0 | 2 |
23
- | terms | 10 | 1 | 0 | 0 | 11 |
24
- | unification | 4 | 0 | 0 | 0 | 4 |
25
- | variables | 8 | 8 | 0 | 0 | 16 |
18
+ | rules | 10 | 1 | 0 | 0 | 11 |
19
+ | strings | 28 | 0 | 0 | 0 | 28 |
20
+ | syntax | 9 | 19 | 0 | 0 | 28 |
21
+ | table | 4 | 0 | 0 | 0 | 4 |
22
+ | terms | 15 | 1 | 0 | 0 | 16 |
23
+ | unification | 7 | 0 | 0 | 0 | 7 |
24
+ | variables | 12 | 8 | 0 | 0 | 20 |
26
25
  | **Total** | **218** | **35** | **13** | **8** | **274** |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eyelang",
3
- "version": "1.7.6",
3
+ "version": "1.7.7",
4
4
  "description": "A small Prolog-like logic programming language for rules, goals, answers, and proofs.",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -4,6 +4,8 @@ This directory contains the executable conformance cases for the Eyelang languag
4
4
 
5
5
  The suite is intentionally file-based so another implementation can run the same programs and compare exact standard output, expected errors, expected warnings, and expected proof output. The conformance corpus is part of the public language contract, not just an implementation smoke test.
6
6
 
7
+ All conformance files live under topic directories such as `arithmetic/`, `lists/`, `syntax/`, or `variables/`; new top-level numbered files should not be added. The report uses those directories as coverage categories.
8
+
7
9
  A normal positive case consists of:
8
10
 
9
11
  - `conformance/cases/<name>.eye` — input program;
@@ -373,6 +373,7 @@ function documentationSyncCases() {
373
373
  assertArrayEqual(report.issues, [], 'conformance report issues');
374
374
  assertEqual(report.total.total >= 250, true, 'conformance case count');
375
375
  assertEqual(report.total.positive + report.total.errors + report.total.warnings + report.total.proofs, report.total.total, 'conformance total');
376
+ assertEqual(report.rows.some((row) => row.category === 'legacy-numbered'), false, 'legacy-numbered category');
376
377
  const text = formatConformanceReport(report);
377
378
  assertIncludes(text, '| variables |', 'report');
378
379
  assertIncludes(text, '| Proofs |', 'report');