Skip to content
This repository
Browse code

split joxa-compiler into several different namespaces

This uses the somewhat new support for mutually recursive namespaces
to split the massive joxa-compiler into a bunch of related
namespaces. It will take sometime to get these optimially organized
but at the very least this makes the compiler itself significantly
more approachable.

Signed-off-by: Jordan Wilberding <diginux@gmail.com>
  • Loading branch information...
commit 1f3c185e05054564530253d15805252fb7812626 1 parent e87c0ef
Eric Merritt authored October 10, 2012 jwilberding committed October 19, 2012

Showing 76 changed files with 84,316 additions and 78,459 deletions. Show diff stats Hide diff stats

  1. 3  Makefile
  2. 46  build-support/bootstrap.mkf
  3. 58  build-support/core-build.mkf
  4. 3,476  src/ast/joxa-cmp-binary.ast
  5. 4,421  src/ast/joxa-cmp-call.ast
  6. 7,516  src/ast/joxa-cmp-case.ast
  7. 932  src/ast/joxa-cmp-checks.ast
  8. 13,638  src/ast/joxa-cmp-ctx.ast
  9. 2,157  src/ast/joxa-cmp-defs.ast
  10. 2,490  src/ast/joxa-cmp-error-format.ast
  11. 8,276  src/ast/joxa-cmp-expr.ast
  12. 2,519  src/ast/joxa-cmp-joxa-info.ast
  13. 8,349  src/ast/joxa-cmp-lexer.ast
  14. 951  src/ast/joxa-cmp-literal.ast
  15. 4,520  src/ast/joxa-cmp-ns.ast
  16. 2,916  src/ast/joxa-cmp-parser.ast
  17. 1,177  src/ast/joxa-cmp-path.ast
  18. 3,591  src/ast/joxa-cmp-peg.ast
  19. 4,435  src/ast/joxa-cmp-spec.ast
  20. 1,005  src/ast/joxa-cmp-special-forms.ast
  21. 827  src/ast/joxa-cmp-util.ast
  22. 79,030  src/ast/joxa-compiler.ast
  23. 169  src/joxa-cmp-binary.jxa
  24. 234  src/joxa-cmp-call.jxa
  25. 386  src/joxa-cmp-case.jxa
  26. 45  src/joxa-cmp-checks.jxa
  27. 885  src/joxa-cmp-ctx.jxa
  28. 112  src/joxa-cmp-defs.jxa
  29. 115  src/joxa-cmp-error-format.jxa
  30. 434  src/joxa-cmp-expr.jxa
  31. 209  src/joxa-cmp-joxa-info.jxa
  32. 374  src/joxa-cmp-lexer.jxa
  33. 55  src/joxa-cmp-literal.jxa
  34. 332  src/joxa-cmp-ns.jxa
  35. 189  src/joxa-cmp-parser.jxa
  36. 158  src/joxa-cmp-path.jxa
  37. 243  src/joxa-cmp-peg.jxa
  38. 238  src/joxa-cmp-spec.jxa
  39. 50  src/joxa-cmp-special-forms.jxa
  40. 65  src/joxa-cmp-util.jxa
  41. 4,334  src/joxa-compiler.jxa
  42. 6  src/joxa-core.jxa
  43. 9  src/joxa-shell.jxa
  44. 11  src/jxa_bootstrap.erl
  45. 2  test/jxat_anon_fun.erl
  46. 22  test/jxat_assert.erl
  47. 5  test/jxat_bare_module.erl
  48. 2  test/jxat_binary.erl
  49. 2  test/jxat_case.erl
  50. 2  test/jxat_core_add.erl
  51. 56  test/jxat_ctx.erl
  52. 4  test/jxat_do_test.erl
  53. 23  test/jxat_eunit.erl
  54. 4  test/jxat_examples.erl
  55. 16  test/jxat_featureful_module.erl
  56. 3  test/jxat_hello_world.erl
  57. 2  test/jxat_implicit_do.erl
  58. 6  test/jxat_incremental_compile.erl
  59. 3  test/jxat_jxa_parser_proper.erl
  60. 2  test/jxat_let_support.erl
  61. 724  test/jxat_lexer.erl
  62. 4  test/jxat_macros.erl
  63. 3  test/jxat_module_fun_line_support.erl
  64. 4  test/jxat_nested_calls.erl
  65. 20  test/jxat_parse.erl
  66. 20  test/jxat_path.erl
  67. 832  test/jxat_peg.erl
  68. 3  test/jxat_predicates.erl
  69. 2  test/jxat_receive.erl
  70. 4  test/jxat_records.erl
  71. 5  test/jxat_rest_args.erl
  72. 6  test/jxat_segfault_tests.erl
  73. 2  test/jxat_specs.erl
  74. 2  test/jxat_throws.erl
  75. 2  test/jxat_try.erl
  76. 2  test/jxat_variable_fun_tests.erl
3  Makefile
@@ -18,9 +18,6 @@ BEAMDIR=$(APPDIR)/ebin
18 18
 
19 19
 # Bootstrap Directories In Build
20 20
 JOXA_BOOTSTRAP_DIR=$(abspath .bootstrap)
21  
-BOOTSTRAP_LIBDIR=$(JOXA_BOOTSTRAP_DIR)
22  
-BOOTSTRAP_APPDIR=$(BOOTSTRAP_LIBDIR)/joxa-$(VSN)
23  
-BOOTSTRAP_BEAMDIR=$(BOOTSTRAP_APPDIR)/ebin
24 21
 
25 22
 # Location of the support makefiles
26 23
 BUILD_SUPPORT=$(CURDIR)/build-support
46  build-support/bootstrap.mkf
... ...
@@ -0,0 +1,46 @@
  1
+## -*- mode: Makefile; fill-column: 75; comment-column: 50; -*-
  2
+SRCDIR=$(CURDIR)/src
  3
+BEAMDIR=$(CURDIR)/ebin
  4
+DEPS_DIR=$(CURDIR)/deps
  5
+ERL=$(shell which erl)
  6
+EBIN_DIRS=$(wildcard $(DEPS_DIR)/*/ebin)
  7
+BASE_ERLCFLAGS=$(EBIN_DIRS:%= -pa %)
  8
+ERLCFLAGS=$(BASE_ERLCFLAGS) -pa $(BEAMDIR)
  9
+ERLFLAGS=-noshell $(ERLCFLAGS)
  10
+
  11
+
  12
+ASTDIR=$(SRCDIR)/ast
  13
+COMP= $(ERL) $(ERLFLAGS) $(TEST_FLAGS) -s 'joxa-compiler' main \
  14
+      -extra
  15
+
  16
+ASTS=$(ASTDIR)/joxa-cmp-util.ast \
  17
+	$(ASTDIR)/joxa-cmp-path.ast \
  18
+	$(ASTDIR)/joxa-cmp-ctx.ast \
  19
+	$(ASTDIR)/joxa-cmp-peg.ast \
  20
+	$(ASTDIR)/joxa-cmp-lexer.ast \
  21
+	$(ASTDIR)/joxa-cmp-ns.ast \
  22
+	$(ASTDIR)/joxa-cmp-call.ast \
  23
+	$(ASTDIR)/joxa-cmp-literal.ast \
  24
+	$(ASTDIR)/joxa-cmp-binary.ast \
  25
+	$(ASTDIR)/joxa-cmp-special-forms.ast \
  26
+	$(ASTDIR)/joxa-cmp-case.ast \
  27
+	$(ASTDIR)/joxa-cmp-spec.ast \
  28
+	$(ASTDIR)/joxa-cmp-expr.ast \
  29
+	$(ASTDIR)/joxa-cmp-defs.ast \
  30
+	$(ASTDIR)/joxa-cmp-joxa-info.ast \
  31
+	$(ASTDIR)/joxa-cmp-checks.ast \
  32
+	$(ASTDIR)/joxa-cmp-error-format.ast \
  33
+	$(ASTDIR)/joxa-cmp-parser.ast \
  34
+	$(ASTDIR)/joxa-compiler.ast
  35
+
  36
+.PHONY: all
  37
+
  38
+.PRECIOUS: %/.d
  39
+
  40
+all: $(ASTS)
  41
+
  42
+$(ASTDIR)/%.ast: $(SRCDIR)/%.jxa $(BEAMDIR)/jxa_bootstrap.beam
  43
+	$(ERL) $(ERLFLAGS) -s joxa-compiler main \
  44
+	-extra --bootstrap --to_ast -o $(ASTDIR) $<
  45
+	echo "." >> $@
  46
+	$(ERL) $(ERLFLAGS) -s jxa_bootstrap do_bootstrap $(BEAMDIR) $@ -s init stop
58  build-support/core-build.mkf
... ...
@@ -1,8 +1,4 @@
1 1
 ## -*- mode: Makefile; fill-column: 75; comment-column: 50; -*-
2  
-
3  
-LOCAL_DEPS=$(TMPDIR)/deps.tar.gz
4  
-GOT_DEPS=$(TMPDIR)/got-em
5  
-
6 2
 TEST_EBIN=$(APPDIR)/.eunit
7 3
 TEST_FLAGS=-pa $(TEST_EBIN)
8 4
 
@@ -12,14 +8,33 @@ EBIN_DIRS=$(wildcard $(DEPS_DIR)/*/ebin)
12 8
 BASE_ERLCFLAGS=$(EBIN_DIRS:%= -pa %)
13 9
 ERLCFLAGS=$(BASE_ERLCFLAGS) -pa $(BEAMDIR)
14 10
 ERLFLAGS=-noshell $(ERLCFLAGS)
15  
-
16 11
 ASTDIR=$(SRCDIR)/ast
17  
-BOOTSTRAP_ERLFLAGS=-noshell -pa $(BOOTSTRAP_BEAMDIR) $(BASE_ERLCFLAGS)
  12
+
  13
+BOOTSTRAP_ERLFLAGS=-noshell -pa $(BEAMDIR) $(BASE_ERLCFLAGS)
18 14
 
19 15
 COMP= $(ERL) $(ERLFLAGS) $(TEST_FLAGS) -s 'joxa-compiler' main \
20 16
       -extra
21 17
 
22  
-SRCBEAMS=$(BEAMDIR)/joxa-compiler.beam \
  18
+
  19
+SRCBEAMS = $(BEAMDIR)/joxa-cmp-util.beam \
  20
+	$(BEAMDIR)/joxa-cmp-path.beam \
  21
+	$(BEAMDIR)/joxa-cmp-ctx.beam \
  22
+	$(BEAMDIR)/joxa-cmp-peg.beam \
  23
+	$(BEAMDIR)/joxa-cmp-lexer.beam \
  24
+	$(BEAMDIR)/joxa-cmp-ns.beam \
  25
+	$(BEAMDIR)/joxa-cmp-call.beam \
  26
+	$(BEAMDIR)/joxa-cmp-literal.beam \
  27
+	$(BEAMDIR)/joxa-cmp-binary.beam \
  28
+	$(BEAMDIR)/joxa-cmp-special-forms.beam \
  29
+	$(BEAMDIR)/joxa-cmp-case.beam \
  30
+	$(BEAMDIR)/joxa-cmp-spec.beam \
  31
+	$(BEAMDIR)/joxa-cmp-expr.beam \
  32
+	$(BEAMDIR)/joxa-cmp-defs.beam \
  33
+	$(BEAMDIR)/joxa-cmp-joxa-info.beam \
  34
+	$(BEAMDIR)/joxa-cmp-checks.beam \
  35
+	$(BEAMDIR)/joxa-cmp-error-format.beam \
  36
+	$(BEAMDIR)/joxa-cmp-parser.beam \
  37
+	$(BEAMDIR)/joxa-compiler.beam \
23 38
 	$(BEAMDIR)/joxa-core.beam \
24 39
 	$(BEAMDIR)/joxa-shell.beam \
25 40
 	$(BEAMDIR)/joxa-records.beam \
@@ -41,7 +56,7 @@ TESTBEAMS = $(TEST_EBIN)/joxa-test-let-match.beam \
41 56
 	$(TEST_EBIN)/joxa-test-namespace-mutual-recursion.beam \
42 57
 	$(TEST_EBIN)/joxa-test-joxification.beam
43 58
 
44  
-.PHONY: all test_bootstrap pre_bootstrap bootstrap clean \
  59
+.PHONY: all ootstrap clean \
45 60
 	jxa test build get-deps proper eunit \
46 61
 	cucumber shell bare-escript
47 62
 
@@ -56,16 +71,9 @@ all: build
56 71
 	@mkdir -p $(@D)
57 72
 	@touch $@
58 73
 
59  
-$(BOOTSTRAP_BEAMDIR)/%.beam: $(SRCDIR)/%.erl $(BOOTSTRAP_BEAMDIR)/.d
60  
-	$(ERLC) $(ERLCFLAGS) -o $(BOOTSTRAP_BEAMDIR) $<
61  
-
62  
-$(BOOTSTRAP_BEAMDIR)/%.beam: $(ASTDIR)/%.ast $(BOOTSTRAP_BEAMDIR)/jxa_bootstrap.beam $(BOOTSTRAP_BEAMDIR)/.d
63  
-	$(ERL) $(BOOTSTRAP_ERLFLAGS) -s jxa_bootstrap do_bootstrap $@ $< -s init stop
64  
-
65  
-$(BEAMDIR)/joxa-compiler.beam: $(SRCDIR)/joxa-compiler.jxa $(BOOTSTRAP_BEAMDIR)/joxa-compiler.beam
66  
-	@echo bootstrapping the compiler
67  
-	$(ERL) $(BOOTSTRAP_ERLFLAGS) -s joxa-compiler main \
68  
-	-extra --bootstrap -o $(BEAMDIR) $(SRCDIR)/joxa-compiler.jxa
  74
+$(BEAMDIR)/%.beam: $(ASTDIR)/%.ast $(BEAMDIR)/jxa_bootstrap.beam $(BEAMDIR)/.d
  75
+	$(ERL) $(BOOTSTRAP_ERLFLAGS) \
  76
+            -s jxa_bootstrap do_bootstrap $(BEAMDIR) $< -s init stop
69 77
 
70 78
 $(BEAMDIR)/%.beam: $(SRCDIR)/%.jxa $(BEAMDIR)/.d $(BEAMDIR)/joxa-compiler.beam
71 79
 	$(COMP) -o $(BEAMDIR) $<
@@ -116,14 +124,6 @@ bare-escript:
116 124
 
117 125
 escript: build bare-escript
118 126
 
119  
-pre_bootstrap:
120  
-## Use the working compiler to build itself
121  
-	$(ERL) $(ERLFLAGS) -s joxa-compiler main \
122  
-	-extra --bootstrap -o $(BEAMDIR) $(SRCDIR)/joxa-compiler.jxa
123  
-## Have the working compiler output its own core erlang ast
124  
-	$(ERL) $(ERLFLAGS) -s joxa-compiler main \
125  
-	-extra --bootstrap --to_ast -o $(ASTDIR) $(SRCDIR)/joxa-compiler.jxa
126  
-## copy that ast into an erl file for useful later building
127  
-	echo "." >> $(ASTDIR)/joxa-compiler.ast
128  
-
129  
-bootstrap: pre_bootstrap clean build test
  127
+bootstrap:
  128
+	make -f $(CURDIR)/build-support/bootstrap.mkf
  129
+	make
3,476  src/ast/joxa-cmp-binary.ast
3476 additions, 0 deletions not shown
4,421  src/ast/joxa-cmp-call.ast
4421 additions, 0 deletions not shown
7,516  src/ast/joxa-cmp-case.ast
7516 additions, 0 deletions not shown
932  src/ast/joxa-cmp-checks.ast
... ...
@@ -0,0 +1,932 @@
  1
+{c_module,
  2
+ [1,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  3
+ {c_literal,
  4
+  [1,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  5
+  'joxa-cmp-checks'},
  6
+ [{c_var,[compiler_generated],{'--joxa-info',1}},
  7
+  {c_var,[compiler_generated],{module_info,1}},
  8
+  {c_var,
  9
+   [43,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  10
+   {'has-errors-or-warnings?',1}},
  11
+  {c_var,[compiler_generated],{'--joxa-info',2}},
  12
+  {c_var,
  13
+   [20,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  14
+   {'has-unresolved-dependencies?',1}},
  15
+  {c_var,[compiler_generated],{module_info,0}}],
  16
+ [{{c_literal,[],export_type},{c_literal,[],[]}}],
  17
+ [{{c_var,[compiler_generated],{module_info,0}},
  18
+   {c_fun,
  19
+    [compiler_generated],
  20
+    [],
  21
+    {c_call,[],
  22
+     {c_literal,[],erlang},
  23
+     {c_literal,[],get_module_info},
  24
+     [{c_literal,[],'joxa-cmp-checks'}]}}},
  25
+  {{c_var,[compiler_generated],{module_info,1}},
  26
+   {c_fun,
  27
+    [compiler_generated],
  28
+    [{c_var,[],'#:G61EFFF6'}],
  29
+    {c_call,[],
  30
+     {c_literal,[],erlang},
  31
+     {c_literal,[],get_module_info},
  32
+     [{c_literal,[],'joxa-cmp-checks'},{c_var,[],'#:G61EFFF6'}]}}},
  33
+  {{c_var,[compiler_generated],{'--joxa-info',1}},
  34
+   {c_fun,
  35
+    [compiler_generated],
  36
+    [{c_var,[],'#:G65DD98'}],
  37
+    {c_case,
  38
+     [compiler_generated],
  39
+     {c_var,[],'#:G65DD98'},
  40
+     [{c_clause,
  41
+       [compiler_generated],
  42
+       [{c_literal,[compiler_generated],rest}],
  43
+       {c_literal,[compiler_generated],true},
  44
+       {c_literal,[compiler_generated],[]}},
  45
+      {c_clause,
  46
+       [compiler_generated],
  47
+       [{c_literal,[compiler_generated],macro}],
  48
+       {c_literal,[compiler_generated],true},
  49
+       {c_literal,[compiler_generated],[]}},
  50
+      {c_clause,
  51
+       [compiler_generated],
  52
+       [{c_literal,[compiler_generated],requires}],
  53
+       {c_literal,[compiler_generated],true},
  54
+       {c_literal,
  55
+        [compiler_generated],
  56
+        [lists,sets,erlang,'joxa-cmp-path','joxa-cmp-ctx',cerl,
  57
+         'joxa-cmp-util']}},
  58
+      {c_clause,
  59
+       [compiler_generated],
  60
+       [{c_literal,[compiler_generated],uses}],
  61
+       {c_literal,[compiler_generated],true},
  62
+       {c_literal,[compiler_generated],[{{'>',2},{'>',erlang}}]}},
  63
+      {c_clause,
  64
+       [compiler_generated],
  65
+       [{c_var,[compiler_generated],'#:GA950F9'}],
  66
+       {c_literal,[compiler_generated],true},
  67
+       {c_primop,
  68
+        [compiler_generated],
  69
+        {c_literal,[compiler_generated],match_fail},
  70
+        [{c_tuple,
  71
+          [compiler_generated],
  72
+          [{c_literal,[compiler_generated],case_clause},
  73
+           {c_var,[compiler_generated],'#:GA950F9'}]}]}}]}}},
  74
+  {{c_var,[compiler_generated],{'--joxa-info',2}},
  75
+   {c_fun,
  76
+    [compiler_generated],
  77
+    [{c_var,[],'#:GC465F3'},{c_var,[],'#:G5988D6E'}],
  78
+    {c_case,
  79
+     [compiler_generated],
  80
+     {c_var,[],'#:GC465F3'},
  81
+     [{c_clause,
  82
+       [compiler_generated],
  83
+       [{c_literal,[compiler_generated],rest}],
  84
+       {c_literal,[compiler_generated],true},
  85
+       {c_case,
  86
+        [compiler_generated],
  87
+        {c_var,[],'#:G5988D6E'},
  88
+        [{c_clause,
  89
+          [compiler_generated],
  90
+          [{c_var,[compiler_generated],'#:G7DCDE5C'}],
  91
+          {c_literal,[compiler_generated],true},
  92
+          {c_literal,[compiler_generated],false}},
  93
+         {c_clause,
  94
+          [compiler_generated],
  95
+          [{c_var,[compiler_generated],'#:G41E8248'}],
  96
+          {c_literal,[compiler_generated],true},
  97
+          {c_primop,
  98
+           [compiler_generated],
  99
+           {c_literal,[compiler_generated],match_fail},
  100
+           [{c_tuple,
  101
+             [compiler_generated],
  102
+             [{c_literal,[compiler_generated],case_clause},
  103
+              {c_var,[compiler_generated],'#:G41E8248'}]}]}}]}},
  104
+      {c_clause,
  105
+       [compiler_generated],
  106
+       [{c_literal,[compiler_generated],macro}],
  107
+       {c_literal,[compiler_generated],true},
  108
+       {c_case,
  109
+        [compiler_generated],
  110
+        {c_var,[],'#:G5988D6E'},
  111
+        [{c_clause,
  112
+          [compiler_generated],
  113
+          [{c_var,[compiler_generated],'#:G495FEA'}],
  114
+          {c_literal,[compiler_generated],true},
  115
+          {c_literal,[compiler_generated],false}},
  116
+         {c_clause,
  117
+          [compiler_generated],
  118
+          [{c_var,[compiler_generated],'#:G5A58A51'}],
  119
+          {c_literal,[compiler_generated],true},
  120
+          {c_primop,
  121
+           [compiler_generated],
  122
+           {c_literal,[compiler_generated],match_fail},
  123
+           [{c_tuple,
  124
+             [compiler_generated],
  125
+             [{c_literal,[compiler_generated],case_clause},
  126
+              {c_var,[compiler_generated],'#:G5A58A51'}]}]}}]}},
  127
+      {c_clause,
  128
+       [compiler_generated],
  129
+       [{c_var,[compiler_generated],'#:G44E7E87'}],
  130
+       {c_literal,[compiler_generated],true},
  131
+       {c_primop,
  132
+        [compiler_generated],
  133
+        {c_literal,[compiler_generated],match_fail},
  134
+        [{c_tuple,
  135
+          [compiler_generated],
  136
+          [{c_literal,[compiler_generated],case_clause},
  137
+           {c_var,[compiler_generated],'#:G44E7E87'}]}]}}]}}},
  138
+  {{c_var,
  139
+    [11,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  140
+    {'sort-fun-deps',2}},
  141
+   {c_fun,
  142
+    [11,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  143
+    [{c_var,
  144
+      [11,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  145
+      dep},
  146
+     {c_var,
  147
+      [11,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  148
+      state}],
  149
+    {c_case,
  150
+     [12,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  151
+     {c_var,
  152
+      [12,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  153
+      state},
  154
+     [{c_clause,
  155
+       [13,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  156
+       [{c_tuple,
  157
+         [13,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  158
+         [{c_var,
  159
+           [13,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  160
+           unresolved0},
  161
+          {c_var,
  162
+           [13,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  163
+           resolved0}]}],
  164
+       {c_literal,
  165
+        [13,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  166
+        true},
  167
+       {c_case,
  168
+        [14,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  169
+        {c_call,
  170
+         [14,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  171
+         {c_literal,
  172
+          [14,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  173
+          sets},
  174
+         {c_literal,
  175
+          [14,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  176
+          is_element},
  177
+         [{c_var,
  178
+           [14,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  179
+           dep},
  180
+          {c_var,
  181
+           [14,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  182
+           resolved0}]},
  183
+        [{c_clause,
  184
+          [15,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  185
+          [{c_literal,
  186
+            [15,
  187
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  188
+            true}],
  189
+          {c_literal,
  190
+           [15,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  191
+           true},
  192
+          {c_var,
  193
+           [16,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  194
+           state}},
  195
+         {c_clause,
  196
+          [17,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  197
+          [{c_literal,
  198
+            [17,
  199
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  200
+            false}],
  201
+          {c_literal,
  202
+           [17,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  203
+           true},
  204
+          {c_tuple,
  205
+           [18,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  206
+           [{c_call,
  207
+             [18,
  208
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  209
+             {c_literal,
  210
+              [18,
  211
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  212
+              sets},
  213
+             {c_literal,
  214
+              [18,
  215
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  216
+              add_element},
  217
+             [{c_var,
  218
+               [18,
  219
+                {file,
  220
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  221
+               dep},
  222
+              {c_var,
  223
+               [18,
  224
+                {file,
  225
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  226
+               unresolved0}]},
  227
+            {c_var,
  228
+             [18,
  229
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  230
+             resolved0}]}},
  231
+         {c_clause,
  232
+          [compiler_generated,14,
  233
+           {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  234
+          [{c_var,
  235
+            [compiler_generated,14,
  236
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  237
+            '#:G7AF6AC6'}],
  238
+          {c_literal,
  239
+           [compiler_generated,14,
  240
+            {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  241
+           true},
  242
+          {c_primop,
  243
+           [compiler_generated,14,
  244
+            {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  245
+           {c_literal,
  246
+            [compiler_generated,14,
  247
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  248
+            match_fail},
  249
+           [{c_tuple,
  250
+             [compiler_generated,14,
  251
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  252
+             [{c_literal,
  253
+               [compiler_generated,14,
  254
+                {file,
  255
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  256
+               case_clause},
  257
+              {c_var,
  258
+               [compiler_generated,14,
  259
+                {file,
  260
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  261
+               '#:G7AF6AC6'}]}]}}]}},
  262
+      {c_clause,
  263
+       [compiler_generated,12,
  264
+        {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  265
+       [{c_var,
  266
+         [compiler_generated,12,
  267
+          {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  268
+         '#:G321897'}],
  269
+       {c_literal,
  270
+        [compiler_generated,12,
  271
+         {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  272
+        true},
  273
+       {c_primop,
  274
+        [compiler_generated,12,
  275
+         {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  276
+        {c_literal,
  277
+         [compiler_generated,12,
  278
+          {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  279
+         match_fail},
  280
+        [{c_tuple,
  281
+          [compiler_generated,12,
  282
+           {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  283
+          [{c_literal,
  284
+            [compiler_generated,12,
  285
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  286
+            case_clause},
  287
+           {c_var,
  288
+            [compiler_generated,12,
  289
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  290
+            '#:G321897'}]}]}}]}}},
  291
+  {{c_var,
  292
+    [20,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  293
+    {'has-unresolved-dependencies?',1}},
  294
+   {c_fun,
  295
+    [20,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  296
+    [{c_var,
  297
+      [20,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  298
+      ctx}],
  299
+    {c_let,
  300
+     [21,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  301
+     [{c_var,
  302
+       [21,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  303
+       reqs}],
  304
+     {c_call,
  305
+      [21,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  306
+      {c_literal,
  307
+       [21,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  308
+       'joxa-cmp-ctx'},
  309
+      {c_literal,
  310
+       [21,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  311
+       'get-definitions'},
  312
+      [{c_var,
  313
+        [21,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  314
+        ctx}]},
  315
+     {c_let,
  316
+      [22,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  317
+      [{c_var,
  318
+        [22,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  319
+        result}],
  320
+      {c_call,
  321
+       [22,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  322
+       {c_literal,
  323
+        [22,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  324
+        lists},
  325
+       {c_literal,
  326
+        [22,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  327
+        foldl},
  328
+       [{c_fun,
  329
+         [23,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  330
+         [{c_var,
  331
+           [23,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  332
+           el},
  333
+          {c_var,
  334
+           [23,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  335
+           acc}],
  336
+         {c_case,
  337
+          [24,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  338
+          {c_var,
  339
+           [24,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  340
+           el},
  341
+          [{c_clause,
  342
+            [25,
  343
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  344
+            [{c_tuple,
  345
+              [25,
  346
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  347
+              [{c_var,
  348
+                [25,
  349
+                 {file,
  350
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  351
+                var},
  352
+               {c_var,
  353
+                [25,
  354
+                 {file,
  355
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  356
+                '_#:G421928'},
  357
+               {c_var,
  358
+                [25,
  359
+                 {file,
  360
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  361
+                deps},
  362
+               {c_var,
  363
+                [25,
  364
+                 {file,
  365
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  366
+                '_#:G2401722'}]}],
  367
+            {c_literal,
  368
+             [25,
  369
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  370
+             true},
  371
+            {c_case,
  372
+             [26,
  373
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  374
+             {c_var,
  375
+              [26,
  376
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  377
+              acc},
  378
+             [{c_clause,
  379
+               [27,
  380
+                {file,
  381
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  382
+               [{c_tuple,
  383
+                 [27,
  384
+                  {file,
  385
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  386
+                 [{c_var,
  387
+                   [27,
  388
+                    {file,
  389
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  390
+                   unresolved0},
  391
+                  {c_var,
  392
+                   [27,
  393
+                    {file,
  394
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  395
+                   resolved0}]}],
  396
+               {c_literal,
  397
+                [27,
  398
+                 {file,
  399
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  400
+                true},
  401
+               {c_let,
  402
+                [28,
  403
+                 {file,
  404
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  405
+                [{c_var,
  406
+                  [28,
  407
+                   {file,
  408
+                    "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  409
+                  element}],
  410
+                {c_tuple,
  411
+                 [28,
  412
+                  {file,
  413
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  414
+                 [{c_call,
  415
+                   [28,
  416
+                    {file,
  417
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  418
+                   {c_literal,
  419
+                    [28,
  420
+                     {file,
  421
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  422
+                    cerl},
  423
+                   {c_literal,
  424
+                    [28,
  425
+                     {file,
  426
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  427
+                    fname_id},
  428
+                   [{c_var,
  429
+                     [28,
  430
+                      {file,
  431
+                       "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  432
+                     var}]},
  433
+                  {c_call,
  434
+                   [28,
  435
+                    {file,
  436
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  437
+                   {c_literal,
  438
+                    [28,
  439
+                     {file,
  440
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  441
+                    cerl},
  442
+                   {c_literal,
  443
+                    [28,
  444
+                     {file,
  445
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  446
+                    fname_arity},
  447
+                   [{c_var,
  448
+                     [28,
  449
+                      {file,
  450
+                       "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  451
+                     var}]}]},
  452
+                {c_let,
  453
+                 [29,
  454
+                  {file,
  455
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  456
+                 [{c_var,
  457
+                   [29,
  458
+                    {file,
  459
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  460
+                   resolved1}],
  461
+                 {c_call,
  462
+                  [29,
  463
+                   {file,
  464
+                    "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  465
+                  {c_literal,
  466
+                   [29,
  467
+                    {file,
  468
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  469
+                   sets},
  470
+                  {c_literal,
  471
+                   [29,
  472
+                    {file,
  473
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  474
+                   add_element},
  475
+                  [{c_var,
  476
+                    [29,
  477
+                     {file,
  478
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  479
+                    element},
  480
+                   {c_var,
  481
+                    [29,
  482
+                     {file,
  483
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  484
+                    resolved0}]},
  485
+                 {c_let,
  486
+                  [30,
  487
+                   {file,
  488
+                    "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  489
+                  [{c_var,
  490
+                    [30,
  491
+                     {file,
  492
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  493
+                    unresolved1}],
  494
+                  {c_call,
  495
+                   [30,
  496
+                    {file,
  497
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  498
+                   {c_literal,
  499
+                    [30,
  500
+                     {file,
  501
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  502
+                    sets},
  503
+                   {c_literal,
  504
+                    [30,
  505
+                     {file,
  506
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  507
+                    del_element},
  508
+                   [{c_var,
  509
+                     [30,
  510
+                      {file,
  511
+                       "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  512
+                     element},
  513
+                    {c_var,
  514
+                     [30,
  515
+                      {file,
  516
+                       "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  517
+                     unresolved0}]},
  518
+                  {c_call,
  519
+                   [31,
  520
+                    {file,
  521
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  522
+                   {c_literal,
  523
+                    [31,
  524
+                     {file,
  525
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  526
+                    lists},
  527
+                   {c_literal,
  528
+                    [31,
  529
+                     {file,
  530
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  531
+                    foldl},
  532
+                   [{c_var,
  533
+                     [31,
  534
+                      {file,
  535
+                       "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  536
+                     {'sort-fun-deps',2}},
  537
+                    {c_tuple,
  538
+                     [31,
  539
+                      {file,
  540
+                       "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  541
+                     [{c_var,
  542
+                       [31,
  543
+                        {file,
  544
+                         "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  545
+                       unresolved1},
  546
+                      {c_var,
  547
+                       [31,
  548
+                        {file,
  549
+                         "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  550
+                       resolved1}]},
  551
+                    {c_call,
  552
+                     [31,
  553
+                      {file,
  554
+                       "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  555
+                     {c_literal,
  556
+                      [31,
  557
+                       {file,
  558
+                        "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  559
+                      sets},
  560
+                     {c_literal,
  561
+                      [31,
  562
+                       {file,
  563
+                        "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  564
+                      to_list},
  565
+                     [{c_var,
  566
+                       [31,
  567
+                        {file,
  568
+                         "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  569
+                       deps}]}]}}}}},
  570
+              {c_clause,
  571
+               [compiler_generated,26,
  572
+                {file,
  573
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  574
+               [{c_var,
  575
+                 [compiler_generated,26,
  576
+                  {file,
  577
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  578
+                 '#:G71C4515'}],
  579
+               {c_literal,
  580
+                [compiler_generated,26,
  581
+                 {file,
  582
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  583
+                true},
  584
+               {c_primop,
  585
+                [compiler_generated,26,
  586
+                 {file,
  587
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  588
+                {c_literal,
  589
+                 [compiler_generated,26,
  590
+                  {file,
  591
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  592
+                 match_fail},
  593
+                [{c_tuple,
  594
+                  [compiler_generated,26,
  595
+                   {file,
  596
+                    "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  597
+                  [{c_literal,
  598
+                    [compiler_generated,26,
  599
+                     {file,
  600
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  601
+                    case_clause},
  602
+                   {c_var,
  603
+                    [compiler_generated,26,
  604
+                     {file,
  605
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  606
+                    '#:G71C4515'}]}]}}]}},
  607
+           {c_clause,
  608
+            [compiler_generated,24,
  609
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  610
+            [{c_var,
  611
+              [compiler_generated,24,
  612
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  613
+              '#:G7A97A7A'}],
  614
+            {c_literal,
  615
+             [compiler_generated,24,
  616
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  617
+             true},
  618
+            {c_primop,
  619
+             [compiler_generated,24,
  620
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  621
+             {c_literal,
  622
+              [compiler_generated,24,
  623
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  624
+              match_fail},
  625
+             [{c_tuple,
  626
+               [compiler_generated,24,
  627
+                {file,
  628
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  629
+               [{c_literal,
  630
+                 [compiler_generated,24,
  631
+                  {file,
  632
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  633
+                 case_clause},
  634
+                {c_var,
  635
+                 [compiler_generated,24,
  636
+                  {file,
  637
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  638
+                 '#:G7A97A7A'}]}]}}]}},
  639
+        {c_tuple,
  640
+         [32,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  641
+         [{c_call,
  642
+           [32,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  643
+           {c_literal,
  644
+            [32,
  645
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  646
+            sets},
  647
+           {c_literal,
  648
+            [32,
  649
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  650
+            new},
  651
+           []},
  652
+          {c_call,
  653
+           [32,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  654
+           {c_literal,
  655
+            [32,
  656
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  657
+            sets},
  658
+           {c_literal,
  659
+            [32,
  660
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  661
+            new},
  662
+           []}]},
  663
+        {c_var,
  664
+         [32,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  665
+         reqs}]},
  666
+      {c_case,
  667
+       [33,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  668
+       {c_var,
  669
+        [33,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  670
+        result},
  671
+       [{c_clause,
  672
+         [34,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  673
+         [{c_tuple,
  674
+           [34,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  675
+           [{c_var,
  676
+             [34,
  677
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  678
+             unresolved},
  679
+            {c_var,
  680
+             [34,
  681
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  682
+             '_#:G3E34AD'}]}],
  683
+         {c_literal,
  684
+          [34,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  685
+          true},
  686
+         {c_case,
  687
+          [35,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  688
+          {c_call,
  689
+           [35,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  690
+           {c_literal,
  691
+            [35,
  692
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  693
+            erlang},
  694
+           {c_literal,
  695
+            [35,
  696
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  697
+            '>'},
  698
+           [{c_call,
  699
+             [35,
  700
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  701
+             {c_literal,
  702
+              [35,
  703
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  704
+              sets},
  705
+             {c_literal,
  706
+              [35,
  707
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  708
+              size},
  709
+             [{c_var,
  710
+               [35,
  711
+                {file,
  712
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  713
+               unresolved}]},
  714
+            {c_literal,
  715
+             [35,
  716
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  717
+             0}]},
  718
+          [{c_clause,
  719
+            [36,
  720
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  721
+            [{c_literal,
  722
+              [36,
  723
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  724
+              true}],
  725
+            {c_literal,
  726
+             [36,
  727
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  728
+             true},
  729
+            {c_seq,
  730
+             [37,
  731
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  732
+             {c_call,
  733
+              [37,
  734
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  735
+              {c_literal,
  736
+               [37,
  737
+                {file,
  738
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  739
+               'joxa-cmp-ctx'},
  740
+              {c_literal,
  741
+               [37,
  742
+                {file,
  743
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  744
+               'add-error-ctx'},
  745
+              [{c_var,
  746
+                [37,
  747
+                 {file,
  748
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  749
+                ctx},
  750
+               {c_call,
  751
+                [37,
  752
+                 {file,
  753
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  754
+                {c_literal,
  755
+                 [37,
  756
+                  {file,
  757
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  758
+                 'joxa-cmp-path'},
  759
+                {c_literal,
  760
+                 [37,
  761
+                  {file,
  762
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  763
+                 'new-path'},
  764
+                []},
  765
+               {c_tuple,
  766
+                [38,
  767
+                 {file,
  768
+                  "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  769
+                [{c_literal,
  770
+                  [38,
  771
+                   {file,
  772
+                    "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  773
+                  'undefined-functions'},
  774
+                 {c_call,
  775
+                  [38,
  776
+                   {file,
  777
+                    "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  778
+                  {c_literal,
  779
+                   [38,
  780
+                    {file,
  781
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  782
+                   sets},
  783
+                  {c_literal,
  784
+                   [38,
  785
+                    {file,
  786
+                     "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  787
+                   to_list},
  788
+                  [{c_var,
  789
+                    [38,
  790
+                     {file,
  791
+                      "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  792
+                    unresolved}]}]}]},
  793
+             {c_literal,
  794
+              [39,
  795
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  796
+              true}}},
  797
+           {c_clause,
  798
+            [40,
  799
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  800
+            [{c_literal,
  801
+              [40,
  802
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  803
+              false}],
  804
+            {c_literal,
  805
+             [40,
  806
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  807
+             true},
  808
+            {c_literal,
  809
+             [41,
  810
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  811
+             false}},
  812
+           {c_clause,
  813
+            [compiler_generated,35,
  814
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  815
+            [{c_var,
  816
+              [compiler_generated,35,
  817
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  818
+              '#:G2ED1ABB'}],
  819
+            {c_literal,
  820
+             [compiler_generated,35,
  821
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  822
+             true},
  823
+            {c_primop,
  824
+             [compiler_generated,35,
  825
+              {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  826
+             {c_literal,
  827
+              [compiler_generated,35,
  828
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  829
+              match_fail},
  830
+             [{c_tuple,
  831
+               [compiler_generated,35,
  832
+                {file,
  833
+                 "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  834
+               [{c_literal,
  835
+                 [compiler_generated,35,
  836
+                  {file,
  837
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  838
+                 case_clause},
  839
+                {c_var,
  840
+                 [compiler_generated,35,
  841
+                  {file,
  842
+                   "/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  843
+                 '#:G2ED1ABB'}]}]}}]}},
  844
+        {c_clause,
  845
+         [compiler_generated,33,
  846
+          {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  847
+         [{c_var,
  848
+           [compiler_generated,33,
  849
+            {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  850
+           '#:G2E8389'}],
  851
+         {c_literal,
  852
+          [compiler_generated,33,
  853
+           {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  854
+          true},
  855
+         {c_primop,
  856
+          [compiler_generated,33,
  857
+           {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  858
+          {c_literal,
  859
+           [compiler_generated,33,
  860
+            {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  861
+           match_fail},
  862
+          [{c_tuple,
  863
+            [compiler_generated,33,
  864
+             {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  865
+            [{c_literal,
  866
+              [compiler_generated,33,
  867
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  868
+              case_clause},
  869
+             {c_var,
  870
+              [compiler_generated,33,
  871
+               {file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  872
+              '#:G2E8389'}]}]}}]}}}}},
  873
+  {{c_var,
  874
+    [43,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  875
+    {'has-errors-or-warnings?',1}},
  876
+   {c_fun,
  877
+    [43,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  878
+    [{c_var,
  879
+      [43,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  880
+      ctx}],
  881
+    {c_call,
  882
+     [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  883
+     {c_literal,
  884
+      [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  885
+      erlang},
  886
+     {c_literal,
  887
+      [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  888
+      'or'},
  889
+     [{c_call,
  890
+       [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  891
+       {c_literal,
  892
+        [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  893
+        erlang},
  894
+       {c_literal,
  895
+        [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  896
+        '>'},
  897
+       [{c_call,
  898
+         [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  899
+         {c_literal,
  900
+          [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  901
+          'joxa-cmp-ctx'},
  902
+         {c_literal,
  903
+          [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  904
+          'warning-count-ctx'},
  905
+         [{c_var,
  906
+           [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  907
+           ctx}]},
  908
+        {c_literal,
  909
+         [44,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  910
+         0}]},
  911
+      {c_call,
  912
+       [45,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  913
+       {c_literal,
  914
+        [45,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  915
+        erlang},
  916
+       {c_literal,
  917
+        [45,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  918
+        '>'},
  919
+       [{c_call,
  920
+         [45,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  921
+         {c_literal,
  922
+          [45,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  923
+          'joxa-cmp-ctx'},
  924
+         {c_literal,
  925
+          [45,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  926
+          'error-count-ctx'},
  927
+         [{c_var,
  928
+           [45,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  929
+           ctx}]},
  930
+        {c_literal,
  931
+         [45,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-checks.jxa"}],
  932
+         0}]}]}}}]}.
13,638  src/ast/joxa-cmp-ctx.ast
13638 additions, 0 deletions not shown
2,157  src/ast/joxa-cmp-defs.ast
... ...
@@ -0,0 +1,2157 @@
  1
+{c_module,
  2
+ [1,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-defs.jxa"}],
  3
+ {c_literal,
  4
+  [1,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-defs.jxa"}],
  5
+  'joxa-cmp-defs'},
  6
+ [{c_var,
  7
+   [102,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-defs.jxa"}],
  8
+   {'make-forms',3}},
  9
+  {c_var,[compiler_generated],{'--joxa-info',1}},
  10
+  {c_var,[compiler_generated],{module_info,1}},
  11
+  {c_var,
  12
+   [22,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-defs.jxa"}],
  13
+   {'make-function',3}},
  14
+  {c_var,[compiler_generated],{'--joxa-info',2}},
  15
+  {c_var,[compiler_generated],{module_info,0}},
  16
+  {c_var,
  17
+   [33,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-defs.jxa"}],
  18
+   {'make-definition',3}}],
  19
+ [{{c_literal,[],export_type},{c_literal,[],[]}},
  20
+  {{c_literal,
  21
+    [13,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-defs.jxa"}],
  22
+    spec},
  23
+   {c_literal,
  24
+    [13,{file,"/Users/emerrit/workspace/joxa/src/joxa-cmp-defs.jxa"}],
  25
+    [{{'make-forms',3},
  26
+      [[{type,13,'fun',
  27
+         [{type,13,product,
  28
+           [{var,{4,[2]},[{'--fun',erlang,term}]},
  29
+            {var,{4,[2]},[{'--fun','joxa-cmp-ctx',context}]},
  30
+            {var,{4,[2]},[{'--fun','joxa-cmp-path',path}]}]},
  31
+          {remote_type,13,
  32
+