kumi 0.0.25 → 0.0.26

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 (177) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +70 -71
  4. data/data/functions/agg/boolean.yaml +6 -2
  5. data/data/functions/agg/numeric.yaml +32 -16
  6. data/data/functions/agg/string.yaml +4 -3
  7. data/data/functions/core/arithmetic.yaml +62 -14
  8. data/data/functions/core/boolean.yaml +12 -6
  9. data/data/functions/core/comparison.yaml +25 -13
  10. data/data/functions/core/constructor.yaml +16 -8
  11. data/data/functions/core/select.yaml +3 -1
  12. data/data/functions/core/stencil.yaml +14 -5
  13. data/data/functions/core/string.yaml +9 -4
  14. data/data/kernels/ruby/agg/numeric.yaml +1 -1
  15. data/docs/UNSAT_DETECTION.md +83 -0
  16. data/golden/array_element/expected/nast.txt +1 -1
  17. data/golden/array_element/expected/schema_ruby.rb +1 -1
  18. data/golden/array_index/expected/nast.txt +7 -7
  19. data/golden/array_index/expected/schema_ruby.rb +1 -1
  20. data/golden/array_operations/expected/nast.txt +2 -2
  21. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  22. data/golden/array_operations/expected/snast.txt +3 -3
  23. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  24. data/golden/cascade_logic/expected/snast.txt +2 -2
  25. data/golden/chained_fusion/expected/nast.txt +2 -2
  26. data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
  27. data/golden/element_arrays/expected/nast.txt +2 -2
  28. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  29. data/golden/element_arrays/expected/snast.txt +1 -1
  30. data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
  31. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
  32. data/golden/function_overload/expected/ast.txt +29 -0
  33. data/golden/function_overload/expected/input_plan.txt +4 -0
  34. data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
  35. data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
  36. data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
  37. data/golden/function_overload/expected/lir_03_cse.txt +20 -0
  38. data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
  39. data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
  40. data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
  41. data/golden/function_overload/expected/nast.txt +22 -0
  42. data/golden/function_overload/expected/schema_javascript.mjs +12 -0
  43. data/golden/function_overload/expected/schema_ruby.rb +39 -0
  44. data/golden/function_overload/expected/snast.txt +22 -0
  45. data/golden/function_overload/input.json +8 -0
  46. data/golden/function_overload/schema.kumi +19 -0
  47. data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
  48. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
  49. data/golden/game_of_life/expected/lir_02_inlined.txt +16 -16
  50. data/golden/game_of_life/expected/lir_03_cse.txt +20 -16
  51. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +20 -16
  52. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +20 -16
  53. data/golden/game_of_life/expected/lir_06_const_prop.txt +20 -16
  54. data/golden/game_of_life/expected/nast.txt +4 -4
  55. data/golden/game_of_life/expected/schema_javascript.mjs +4 -2
  56. data/golden/game_of_life/expected/schema_ruby.rb +5 -3
  57. data/golden/game_of_life/expected/snast.txt +10 -10
  58. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  59. data/golden/hash_value/expected/nast.txt +1 -1
  60. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  61. data/golden/hash_value/expected/snast.txt +1 -1
  62. data/golden/hierarchical_complex/expected/nast.txt +3 -3
  63. data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
  64. data/golden/hierarchical_complex/expected/snast.txt +3 -3
  65. data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
  66. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  67. data/golden/input_reference/expected/nast.txt +2 -2
  68. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  69. data/golden/interleaved_fusion/expected/nast.txt +2 -2
  70. data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
  71. data/golden/let_inline/expected/nast.txt +4 -4
  72. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  73. data/golden/loop_fusion/expected/nast.txt +1 -1
  74. data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
  75. data/golden/min_reduce_scope/expected/nast.txt +3 -3
  76. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  77. data/golden/min_reduce_scope/expected/snast.txt +1 -1
  78. data/golden/mixed_dimensions/expected/nast.txt +2 -2
  79. data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
  80. data/golden/multirank_hoisting/expected/nast.txt +7 -7
  81. data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
  82. data/golden/nested_hash/expected/nast.txt +1 -1
  83. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  84. data/golden/reduction_broadcast/expected/nast.txt +3 -3
  85. data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
  86. data/golden/reduction_broadcast/expected/snast.txt +1 -1
  87. data/golden/roll/expected/schema_ruby.rb +1 -1
  88. data/golden/shift/expected/schema_ruby.rb +1 -1
  89. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  90. data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
  91. data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
  92. data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
  93. data/golden/simple_math/expected/lir_03_cse.txt +1 -1
  94. data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
  95. data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
  96. data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
  97. data/golden/simple_math/expected/nast.txt +5 -5
  98. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  99. data/golden/simple_math/expected/snast.txt +2 -2
  100. data/golden/streaming_basics/expected/nast.txt +8 -8
  101. data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
  102. data/golden/streaming_basics/expected/snast.txt +1 -1
  103. data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
  104. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
  105. data/golden/tuples/expected/lir_02_inlined.txt +5 -5
  106. data/golden/tuples/expected/lir_03_cse.txt +5 -5
  107. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
  108. data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
  109. data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
  110. data/golden/tuples/expected/nast.txt +4 -4
  111. data/golden/tuples/expected/schema_ruby.rb +1 -1
  112. data/golden/tuples/expected/snast.txt +6 -6
  113. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  114. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  115. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +2 -2
  116. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
  117. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
  118. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
  119. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
  120. data/golden/tuples_and_arrays/expected/nast.txt +3 -3
  121. data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
  122. data/golden/tuples_and_arrays/expected/snast.txt +2 -2
  123. data/golden/us_tax_2024/expected/ast.txt +63 -670
  124. data/golden/us_tax_2024/expected/input_plan.txt +8 -45
  125. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
  126. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
  127. data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
  128. data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
  129. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
  130. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2460
  131. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2460
  132. data/golden/us_tax_2024/expected/nast.txt +123 -826
  133. data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
  134. data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
  135. data/golden/us_tax_2024/expected/snast.txt +155 -858
  136. data/golden/us_tax_2024/expected.json +120 -1
  137. data/golden/us_tax_2024/input.json +18 -9
  138. data/golden/us_tax_2024/schema.kumi +48 -178
  139. data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
  140. data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
  141. data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
  142. data/golden/with_constants/expected/lir_03_cse.txt +1 -1
  143. data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
  144. data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
  145. data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
  146. data/golden/with_constants/expected/nast.txt +2 -2
  147. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  148. data/golden/with_constants/expected/snast.txt +2 -2
  149. data/lib/kumi/analyzer.rb +12 -12
  150. data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
  151. data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
  152. data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
  153. data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
  154. data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
  155. data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
  156. data/lib/kumi/core/error_reporter.rb +36 -1
  157. data/lib/kumi/core/errors.rb +33 -1
  158. data/lib/kumi/core/functions/function_spec.rb +5 -4
  159. data/lib/kumi/core/functions/loader.rb +17 -1
  160. data/lib/kumi/core/functions/overload_resolver.rb +164 -0
  161. data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
  162. data/lib/kumi/core/functions/type_rules.rb +155 -35
  163. data/lib/kumi/core/types/inference.rb +29 -22
  164. data/lib/kumi/core/types/normalizer.rb +29 -45
  165. data/lib/kumi/core/types/validator.rb +16 -27
  166. data/lib/kumi/core/types/value_objects.rb +116 -0
  167. data/lib/kumi/core/types.rb +45 -37
  168. data/lib/kumi/registry_v2/loader.rb +90 -0
  169. data/lib/kumi/registry_v2.rb +18 -1
  170. data/lib/kumi/version.rb +1 -1
  171. metadata +21 -7
  172. data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
  173. data/lib/kumi/core/atom_unsat_solver.rb +0 -396
  174. data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
  175. data/lib/kumi/core/types/builder.rb +0 -23
  176. data/lib/kumi/core/types/compatibility.rb +0 -96
  177. data/lib/kumi/core/types/formatter.rb +0 -26
@@ -11,105 +11,105 @@
11
11
  (InputRef local_rate key_chain=[]) :: [] -> float
12
12
  ) :: [] -> float
13
13
  ) :: [] -> float
14
- (VALUE taxable_single
14
+ (VALUE taxable
15
15
  (Fold :agg.max
16
16
  (Tuple
17
17
  (Call :core.sub
18
18
  (InputRef income key_chain=[]) :: [] -> float
19
- (InputRef fed.single.std key_chain=[]) :: [] -> float
20
- ) :: [] -> float
19
+ (InputRef statuses.status.std key_chain=[]) :: [statuses] -> float
20
+ ) :: [statuses] -> float
21
21
  (Const 0) :: [] -> integer
22
- ) :: [] -> tuple<float, integer>
23
- ) :: [] -> float
24
- ) :: [] -> float
25
- (VALUE lo_s
26
- (InputRef fed.single.rates.bracket.lo key_chain=[]) :: [rates] -> float
27
- ) :: [rates] -> float
28
- (VALUE hi_s
29
- (InputRef fed.single.rates.bracket.hi key_chain=[]) :: [rates] -> float
30
- ) :: [rates] -> float
31
- (VALUE rate_s
32
- (InputRef fed.single.rates.bracket.rate key_chain=[]) :: [rates] -> float
33
- ) :: [rates] -> float
22
+ ) :: [statuses] -> tuple<float, integer>
23
+ ) :: [statuses] -> float
24
+ ) :: [statuses] -> float
25
+ (VALUE lo
26
+ (InputRef statuses.status.rates.bracket.lo key_chain=[]) :: [statuses, rates] -> float
27
+ ) :: [statuses, rates] -> float
28
+ (VALUE hi
29
+ (InputRef statuses.status.rates.bracket.hi key_chain=[]) :: [statuses, rates] -> float
30
+ ) :: [statuses, rates] -> float
31
+ (VALUE rate
32
+ (InputRef statuses.status.rates.bracket.rate key_chain=[]) :: [statuses, rates] -> float
33
+ ) :: [statuses, rates] -> float
34
34
  (VALUE big_hi
35
35
  (Const 100000000000.0) :: [] -> float
36
36
  ) :: [] -> float
37
- (VALUE hi_s_eff
37
+ (VALUE hi_eff
38
38
  (Select
39
39
  (Call :core.eq
40
- (Ref hi_s) :: [rates] -> float
40
+ (Ref hi) :: [statuses, rates] -> float
41
41
  (Const -1) :: [] -> integer
42
- ) :: [rates] -> boolean
42
+ ) :: [statuses, rates] -> boolean
43
43
  (Const 100000000000.0) :: [] -> float
44
- (Ref hi_s) :: [rates] -> float
45
- ) :: [rates] -> float
46
- ) :: [rates] -> float
47
- (VALUE amt_s
44
+ (Ref hi) :: [statuses, rates] -> float
45
+ ) :: [statuses, rates] -> float
46
+ ) :: [statuses, rates] -> float
47
+ (VALUE amt
48
48
  (Call :core.clamp
49
49
  (Call :core.sub
50
- (Ref taxable_single) :: [] -> float
51
- (Ref lo_s) :: [rates] -> float
52
- ) :: [rates] -> float
50
+ (Ref taxable) :: [statuses] -> float
51
+ (Ref lo) :: [statuses, rates] -> float
52
+ ) :: [statuses, rates] -> float
53
53
  (Const 0) :: [] -> integer
54
54
  (Call :core.sub
55
- (Ref hi_s_eff) :: [rates] -> float
56
- (Ref lo_s) :: [rates] -> float
57
- ) :: [rates] -> float
58
- ) :: [rates] -> float
59
- ) :: [rates] -> float
60
- (VALUE fed_tax_single
55
+ (Ref hi_eff) :: [statuses, rates] -> float
56
+ (Ref lo) :: [statuses, rates] -> float
57
+ ) :: [statuses, rates] -> float
58
+ ) :: [statuses, rates] -> float
59
+ ) :: [statuses, rates] -> float
60
+ (VALUE fed_tax
61
61
  (Reduce :agg.sum over [rates]
62
62
  (Call :core.mul
63
- (Ref amt_s) :: [rates] -> float
64
- (Ref rate_s) :: [rates] -> float
65
- ) :: [rates] -> float
66
- ) :: [] -> float
67
- ) :: [] -> float
68
- (TRAIT in_br_s
63
+ (Ref amt) :: [statuses, rates] -> float
64
+ (Ref rate) :: [statuses, rates] -> float
65
+ ) :: [statuses, rates] -> float
66
+ ) :: [statuses] -> float
67
+ ) :: [statuses] -> float
68
+ (VALUE in_br
69
69
  (Call :core.and
70
70
  (Call :core.gte
71
- (Ref taxable_single) :: [] -> float
72
- (Ref lo_s) :: [rates] -> float
73
- ) :: [rates] -> boolean
71
+ (Ref taxable) :: [statuses] -> float
72
+ (Ref lo) :: [statuses, rates] -> float
73
+ ) :: [statuses, rates] -> boolean
74
74
  (Call :core.lt
75
- (Ref taxable_single) :: [] -> float
76
- (Ref hi_s_eff) :: [rates] -> float
77
- ) :: [rates] -> boolean
78
- ) :: [rates] -> boolean
79
- ) :: [rates] -> boolean
80
- (VALUE fed_marginal_single
75
+ (Ref taxable) :: [statuses] -> float
76
+ (Ref hi_eff) :: [statuses, rates] -> float
77
+ ) :: [statuses, rates] -> boolean
78
+ ) :: [statuses, rates] -> boolean
79
+ ) :: [statuses, rates] -> boolean
80
+ (VALUE fed_marg
81
81
  (Reduce :agg.sum over [rates]
82
82
  (Select
83
- (Ref in_br_s) :: [rates] -> boolean
84
- (Ref rate_s) :: [rates] -> float
83
+ (Ref in_br) :: [statuses, rates] -> boolean
84
+ (Ref rate) :: [statuses, rates] -> float
85
85
  (Const 0) :: [] -> integer
86
- ) :: [rates] -> float
87
- ) :: [] -> float
88
- ) :: [] -> float
89
- (VALUE fed_eff_single
86
+ ) :: [statuses, rates] -> float
87
+ ) :: [statuses] -> float
88
+ ) :: [statuses] -> float
89
+ (VALUE fed_eff
90
90
  (Call :core.div
91
- (Ref fed_tax_single) :: [] -> float
91
+ (Ref fed_tax) :: [statuses] -> float
92
92
  (Fold :agg.max
93
93
  (Tuple
94
94
  (InputRef income key_chain=[]) :: [] -> float
95
95
  (Const 1.0) :: [] -> float
96
- ) :: [] -> tuple<float>
96
+ ) :: [] -> tuple<float, float>
97
97
  ) :: [] -> float
98
- ) :: [] -> float
99
- ) :: [] -> float
98
+ ) :: [statuses] -> float
99
+ ) :: [statuses] -> float
100
100
  (VALUE ss_wage_base
101
101
  (Const 168600.0) :: [] -> float
102
102
  ) :: [] -> float
103
103
  (VALUE ss_rate
104
104
  (Const 0.062) :: [] -> float
105
105
  ) :: [] -> float
106
- (VALUE ss_tax_s
106
+ (VALUE ss_tax
107
107
  (Call :core.mul
108
108
  (Fold :agg.min
109
109
  (Tuple
110
110
  (InputRef income key_chain=[]) :: [] -> float
111
111
  (Const 168600.0) :: [] -> float
112
- ) :: [] -> tuple<float>
112
+ ) :: [] -> tuple<float, float>
113
113
  ) :: [] -> float
114
114
  (Const 0.062) :: [] -> float
115
115
  ) :: [] -> float
@@ -117,860 +117,157 @@
117
117
  (VALUE med_base_rate
118
118
  (Const 0.0145) :: [] -> float
119
119
  ) :: [] -> float
120
- (VALUE med_tax_s
120
+ (VALUE med_tax
121
121
  (Call :core.mul
122
122
  (InputRef income key_chain=[]) :: [] -> float
123
123
  (Const 0.0145) :: [] -> float
124
124
  ) :: [] -> float
125
125
  ) :: [] -> float
126
- (VALUE addl_threshold_single
127
- (Const 200000.0) :: [] -> float
128
- ) :: [] -> float
129
126
  (VALUE addl_med_rate
130
127
  (Const 0.009) :: [] -> float
131
128
  ) :: [] -> float
132
- (VALUE addl_med_tax_s
133
- (Call :core.mul
134
- (Fold :agg.max
135
- (Tuple
136
- (Call :core.sub
137
- (InputRef income key_chain=[]) :: [] -> float
138
- (Const 200000.0) :: [] -> float
139
- ) :: [] -> float
140
- (Const 0) :: [] -> integer
141
- ) :: [] -> tuple<float, integer>
142
- ) :: [] -> float
143
- (Const 0.009) :: [] -> float
144
- ) :: [] -> float
145
- ) :: [] -> float
146
- (VALUE fica_tax_single
147
- (Call :core.add
148
- (Call :core.add
149
- (Ref ss_tax_s) :: [] -> float
150
- (Ref med_tax_s) :: [] -> float
151
- ) :: [] -> float
152
- (Ref addl_med_tax_s) :: [] -> float
153
- ) :: [] -> float
154
- ) :: [] -> float
155
- (VALUE fica_eff_single
156
- (Call :core.div
157
- (Ref fica_tax_single) :: [] -> float
158
- (Fold :agg.max
159
- (Tuple
160
- (InputRef income key_chain=[]) :: [] -> float
161
- (Const 1.0) :: [] -> float
162
- ) :: [] -> tuple<float>
163
- ) :: [] -> float
164
- ) :: [] -> float
165
- ) :: [] -> float
166
- (VALUE total_tax_single
167
- (Call :core.add
168
- (Call :core.add
169
- (Call :core.add
170
- (Ref fed_tax_single) :: [] -> float
171
- (Ref fica_tax_single) :: [] -> float
172
- ) :: [] -> float
173
- (Ref state_tax) :: [] -> float
174
- ) :: [] -> float
175
- (Ref local_tax) :: [] -> float
176
- ) :: [] -> float
177
- ) :: [] -> float
178
- (VALUE total_eff_single
179
- (Call :core.div
180
- (Ref total_tax_single) :: [] -> float
181
- (Fold :agg.max
182
- (Tuple
183
- (InputRef income key_chain=[]) :: [] -> float
184
- (Const 1.0) :: [] -> float
185
- ) :: [] -> tuple<float>
186
- ) :: [] -> float
187
- ) :: [] -> float
188
- ) :: [] -> float
189
- (VALUE after_tax_single
190
- (Call :core.sub
191
- (InputRef income key_chain=[]) :: [] -> float
192
- (Ref total_tax_single) :: [] -> float
193
- ) :: [] -> float
194
- ) :: [] -> float
195
- (VALUE take_home_single
196
- (Call :core.sub
197
- (Ref after_tax_single) :: [] -> float
198
- (InputRef retirement_contrib key_chain=[]) :: [] -> float
199
- ) :: [] -> float
200
- ) :: [] -> float
201
- (VALUE taxable_mj
202
- (Fold :agg.max
203
- (Tuple
204
- (Call :core.sub
205
- (InputRef income key_chain=[]) :: [] -> float
206
- (InputRef fed.married_joint.std key_chain=[]) :: [] -> float
207
- ) :: [] -> float
208
- (Const 0) :: [] -> integer
209
- ) :: [] -> tuple<float, integer>
210
- ) :: [] -> float
211
- ) :: [] -> float
212
- (VALUE lo_mj
213
- (InputRef fed.married_joint.rates.bracket.lo key_chain=[]) :: [rates] -> float
214
- ) :: [rates] -> float
215
- (VALUE hi_mj
216
- (InputRef fed.married_joint.rates.bracket.hi key_chain=[]) :: [rates] -> float
217
- ) :: [rates] -> float
218
- (VALUE rate_mj
219
- (InputRef fed.married_joint.rates.bracket.rate key_chain=[]) :: [rates] -> float
220
- ) :: [rates] -> float
221
- (VALUE hi_mj_eff
222
- (Select
223
- (Call :core.eq
224
- (Ref hi_mj) :: [rates] -> float
225
- (Const -1) :: [] -> integer
226
- ) :: [rates] -> boolean
227
- (Const 100000000000.0) :: [] -> float
228
- (Ref hi_mj) :: [rates] -> float
229
- ) :: [rates] -> float
230
- ) :: [rates] -> float
231
- (VALUE amt_mj
232
- (Call :core.clamp
233
- (Call :core.sub
234
- (Ref taxable_mj) :: [] -> float
235
- (Ref lo_mj) :: [rates] -> float
236
- ) :: [rates] -> float
237
- (Const 0) :: [] -> integer
238
- (Call :core.sub
239
- (Ref hi_mj_eff) :: [rates] -> float
240
- (Ref lo_mj) :: [rates] -> float
241
- ) :: [rates] -> float
242
- ) :: [rates] -> float
243
- ) :: [rates] -> float
244
- (VALUE fed_tax_mj
245
- (Reduce :agg.sum over [rates]
246
- (Call :core.mul
247
- (Ref amt_mj) :: [rates] -> float
248
- (Ref rate_mj) :: [rates] -> float
249
- ) :: [rates] -> float
250
- ) :: [] -> float
251
- ) :: [] -> float
252
- (TRAIT in_br_mj
253
- (Call :core.and
254
- (Call :core.gte
255
- (Ref taxable_mj) :: [] -> float
256
- (Ref lo_mj) :: [rates] -> float
257
- ) :: [rates] -> boolean
258
- (Call :core.lt
259
- (Ref taxable_mj) :: [] -> float
260
- (Ref hi_mj_eff) :: [rates] -> float
261
- ) :: [rates] -> boolean
262
- ) :: [rates] -> boolean
263
- ) :: [rates] -> boolean
264
- (VALUE fed_marginal_mj
265
- (Reduce :agg.sum over [rates]
266
- (Select
267
- (Ref in_br_mj) :: [rates] -> boolean
268
- (Ref rate_mj) :: [rates] -> float
269
- (Const 0) :: [] -> integer
270
- ) :: [rates] -> float
271
- ) :: [] -> float
272
- ) :: [] -> float
273
- (VALUE fed_eff_mj
274
- (Call :core.div
275
- (Ref fed_tax_mj) :: [] -> float
276
- (Fold :agg.max
277
- (Tuple
278
- (InputRef income key_chain=[]) :: [] -> float
279
- (Const 1.0) :: [] -> float
280
- ) :: [] -> tuple<float>
281
- ) :: [] -> float
282
- ) :: [] -> float
283
- ) :: [] -> float
284
- (VALUE ss_tax_mj
285
- (Ref ss_tax_s) :: [] -> float
286
- ) :: [] -> float
287
- (VALUE med_tax_mj
288
- (Ref med_tax_s) :: [] -> float
289
- ) :: [] -> float
290
- (VALUE addl_threshold_mj
291
- (Const 250000.0) :: [] -> float
292
- ) :: [] -> float
293
- (VALUE addl_med_tax_mj
294
- (Call :core.mul
295
- (Fold :agg.max
296
- (Tuple
297
- (Call :core.sub
298
- (InputRef income key_chain=[]) :: [] -> float
299
- (Const 250000.0) :: [] -> float
300
- ) :: [] -> float
301
- (Const 0) :: [] -> integer
302
- ) :: [] -> tuple<float, integer>
303
- ) :: [] -> float
304
- (Const 0.009) :: [] -> float
305
- ) :: [] -> float
306
- ) :: [] -> float
307
- (VALUE fica_tax_mj
308
- (Call :core.add
309
- (Call :core.add
310
- (Ref ss_tax_mj) :: [] -> float
311
- (Ref med_tax_mj) :: [] -> float
312
- ) :: [] -> float
313
- (Ref addl_med_tax_mj) :: [] -> float
314
- ) :: [] -> float
315
- ) :: [] -> float
316
- (VALUE fica_eff_mj
317
- (Call :core.div
318
- (Ref fica_tax_mj) :: [] -> float
319
- (Fold :agg.max
320
- (Tuple
321
- (InputRef income key_chain=[]) :: [] -> float
322
- (Const 1.0) :: [] -> float
323
- ) :: [] -> tuple<float>
324
- ) :: [] -> float
325
- ) :: [] -> float
326
- ) :: [] -> float
327
- (VALUE total_tax_mj
328
- (Call :core.add
329
- (Call :core.add
330
- (Call :core.add
331
- (Ref fed_tax_mj) :: [] -> float
332
- (Ref fica_tax_mj) :: [] -> float
333
- ) :: [] -> float
334
- (Ref state_tax) :: [] -> float
335
- ) :: [] -> float
336
- (Ref local_tax) :: [] -> float
337
- ) :: [] -> float
338
- ) :: [] -> float
339
- (VALUE total_eff_mj
340
- (Call :core.div
341
- (Ref total_tax_mj) :: [] -> float
342
- (Fold :agg.max
343
- (Tuple
344
- (InputRef income key_chain=[]) :: [] -> float
345
- (Const 1.0) :: [] -> float
346
- ) :: [] -> tuple<float>
347
- ) :: [] -> float
348
- ) :: [] -> float
349
- ) :: [] -> float
350
- (VALUE after_tax_mj
351
- (Call :core.sub
352
- (InputRef income key_chain=[]) :: [] -> float
353
- (Ref total_tax_mj) :: [] -> float
354
- ) :: [] -> float
355
- ) :: [] -> float
356
- (VALUE take_home_mj
357
- (Call :core.sub
358
- (Ref after_tax_mj) :: [] -> float
359
- (InputRef retirement_contrib key_chain=[]) :: [] -> float
360
- ) :: [] -> float
361
- ) :: [] -> float
362
- (VALUE taxable_ms
363
- (Fold :agg.max
364
- (Tuple
365
- (Call :core.sub
366
- (InputRef income key_chain=[]) :: [] -> float
367
- (InputRef fed.married_separate.std key_chain=[]) :: [] -> float
368
- ) :: [] -> float
369
- (Const 0) :: [] -> integer
370
- ) :: [] -> tuple<float, integer>
371
- ) :: [] -> float
372
- ) :: [] -> float
373
- (VALUE lo_ms
374
- (InputRef fed.married_separate.rates.bracket.lo key_chain=[]) :: [rates] -> float
375
- ) :: [rates] -> float
376
- (VALUE hi_ms
377
- (InputRef fed.married_separate.rates.bracket.hi key_chain=[]) :: [rates] -> float
378
- ) :: [rates] -> float
379
- (VALUE rate_ms
380
- (InputRef fed.married_separate.rates.bracket.rate key_chain=[]) :: [rates] -> float
381
- ) :: [rates] -> float
382
- (VALUE hi_ms_eff
383
- (Select
384
- (Call :core.eq
385
- (Ref hi_ms) :: [rates] -> float
386
- (Const -1) :: [] -> integer
387
- ) :: [rates] -> boolean
388
- (Const 100000000000.0) :: [] -> float
389
- (Ref hi_ms) :: [rates] -> float
390
- ) :: [rates] -> float
391
- ) :: [rates] -> float
392
- (VALUE amt_ms
393
- (Call :core.clamp
394
- (Call :core.sub
395
- (Ref taxable_ms) :: [] -> float
396
- (Ref lo_ms) :: [rates] -> float
397
- ) :: [rates] -> float
398
- (Const 0) :: [] -> integer
399
- (Call :core.sub
400
- (Ref hi_ms_eff) :: [rates] -> float
401
- (Ref lo_ms) :: [rates] -> float
402
- ) :: [rates] -> float
403
- ) :: [rates] -> float
404
- ) :: [rates] -> float
405
- (VALUE fed_tax_ms
406
- (Reduce :agg.sum over [rates]
407
- (Call :core.mul
408
- (Ref amt_ms) :: [rates] -> float
409
- (Ref rate_ms) :: [rates] -> float
410
- ) :: [rates] -> float
411
- ) :: [] -> float
412
- ) :: [] -> float
413
- (TRAIT in_br_ms
414
- (Call :core.and
415
- (Call :core.gte
416
- (Ref taxable_ms) :: [] -> float
417
- (Ref lo_ms) :: [rates] -> float
418
- ) :: [rates] -> boolean
419
- (Call :core.lt
420
- (Ref taxable_ms) :: [] -> float
421
- (Ref hi_ms_eff) :: [rates] -> float
422
- ) :: [rates] -> boolean
423
- ) :: [rates] -> boolean
424
- ) :: [rates] -> boolean
425
- (VALUE fed_marginal_ms
426
- (Reduce :agg.sum over [rates]
427
- (Select
428
- (Ref in_br_ms) :: [rates] -> boolean
429
- (Ref rate_ms) :: [rates] -> float
430
- (Const 0) :: [] -> integer
431
- ) :: [rates] -> float
432
- ) :: [] -> float
433
- ) :: [] -> float
434
- (VALUE fed_eff_ms
435
- (Call :core.div
436
- (Ref fed_tax_ms) :: [] -> float
437
- (Fold :agg.max
438
- (Tuple
439
- (InputRef income key_chain=[]) :: [] -> float
440
- (Const 1.0) :: [] -> float
441
- ) :: [] -> tuple<float>
442
- ) :: [] -> float
443
- ) :: [] -> float
444
- ) :: [] -> float
445
- (VALUE ss_tax_ms
446
- (Ref ss_tax_s) :: [] -> float
447
- ) :: [] -> float
448
- (VALUE med_tax_ms
449
- (Ref med_tax_s) :: [] -> float
450
- ) :: [] -> float
451
- (VALUE addl_threshold_ms
452
- (Const 125000.0) :: [] -> float
453
- ) :: [] -> float
454
- (VALUE addl_med_tax_ms
129
+ (VALUE addl_med_tax
455
130
  (Call :core.mul
456
131
  (Fold :agg.max
457
132
  (Tuple
458
133
  (Call :core.sub
459
134
  (InputRef income key_chain=[]) :: [] -> float
460
- (Const 125000.0) :: [] -> float
461
- ) :: [] -> float
135
+ (InputRef statuses.status.addl_threshold key_chain=[]) :: [statuses] -> float
136
+ ) :: [statuses] -> float
462
137
  (Const 0) :: [] -> integer
463
- ) :: [] -> tuple<float, integer>
464
- ) :: [] -> float
138
+ ) :: [statuses] -> tuple<float, integer>
139
+ ) :: [statuses] -> float
465
140
  (Const 0.009) :: [] -> float
466
- ) :: [] -> float
467
- ) :: [] -> float
468
- (VALUE fica_tax_ms
141
+ ) :: [statuses] -> float
142
+ ) :: [statuses] -> float
143
+ (VALUE fica_tax
469
144
  (Call :core.add
470
145
  (Call :core.add
471
- (Ref ss_tax_ms) :: [] -> float
472
- (Ref med_tax_ms) :: [] -> float
146
+ (Ref ss_tax) :: [] -> float
147
+ (Ref med_tax) :: [] -> float
473
148
  ) :: [] -> float
474
- (Ref addl_med_tax_ms) :: [] -> float
475
- ) :: [] -> float
476
- ) :: [] -> float
477
- (VALUE fica_eff_ms
149
+ (Ref addl_med_tax) :: [statuses] -> float
150
+ ) :: [statuses] -> float
151
+ ) :: [statuses] -> float
152
+ (VALUE fica_eff
478
153
  (Call :core.div
479
- (Ref fica_tax_ms) :: [] -> float
154
+ (Ref fica_tax) :: [statuses] -> float
480
155
  (Fold :agg.max
481
156
  (Tuple
482
157
  (InputRef income key_chain=[]) :: [] -> float
483
158
  (Const 1.0) :: [] -> float
484
- ) :: [] -> tuple<float>
159
+ ) :: [] -> tuple<float, float>
485
160
  ) :: [] -> float
486
- ) :: [] -> float
487
- ) :: [] -> float
488
- (VALUE total_tax_ms
161
+ ) :: [statuses] -> float
162
+ ) :: [statuses] -> float
163
+ (VALUE total_tax
489
164
  (Call :core.add
490
165
  (Call :core.add
491
166
  (Call :core.add
492
- (Ref fed_tax_ms) :: [] -> float
493
- (Ref fica_tax_ms) :: [] -> float
494
- ) :: [] -> float
167
+ (Ref fed_tax) :: [statuses] -> float
168
+ (Ref fica_tax) :: [statuses] -> float
169
+ ) :: [statuses] -> float
495
170
  (Ref state_tax) :: [] -> float
496
- ) :: [] -> float
171
+ ) :: [statuses] -> float
497
172
  (Ref local_tax) :: [] -> float
498
- ) :: [] -> float
499
- ) :: [] -> float
500
- (VALUE total_eff_ms
173
+ ) :: [statuses] -> float
174
+ ) :: [statuses] -> float
175
+ (VALUE total_eff
501
176
  (Call :core.div
502
- (Ref total_tax_ms) :: [] -> float
177
+ (Ref total_tax) :: [statuses] -> float
503
178
  (Fold :agg.max
504
179
  (Tuple
505
180
  (InputRef income key_chain=[]) :: [] -> float
506
181
  (Const 1.0) :: [] -> float
507
- ) :: [] -> tuple<float>
182
+ ) :: [] -> tuple<float, float>
508
183
  ) :: [] -> float
509
- ) :: [] -> float
510
- ) :: [] -> float
511
- (VALUE after_tax_ms
184
+ ) :: [statuses] -> float
185
+ ) :: [statuses] -> float
186
+ (VALUE after_tax
512
187
  (Call :core.sub
513
188
  (InputRef income key_chain=[]) :: [] -> float
514
- (Ref total_tax_ms) :: [] -> float
515
- ) :: [] -> float
516
- ) :: [] -> float
517
- (VALUE take_home_ms
189
+ (Ref total_tax) :: [statuses] -> float
190
+ ) :: [statuses] -> float
191
+ ) :: [statuses] -> float
192
+ (VALUE take_home
518
193
  (Call :core.sub
519
- (Ref after_tax_ms) :: [] -> float
194
+ (Ref after_tax) :: [statuses] -> float
520
195
  (InputRef retirement_contrib key_chain=[]) :: [] -> float
521
- ) :: [] -> float
522
- ) :: [] -> float
523
- (VALUE taxable_hoh
524
- (Fold :agg.max
525
- (Tuple
526
- (Call :core.sub
527
- (InputRef income key_chain=[]) :: [] -> float
528
- (InputRef fed.head_of_household.std key_chain=[]) :: [] -> float
529
- ) :: [] -> float
530
- (Const 0) :: [] -> integer
531
- ) :: [] -> tuple<float, integer>
532
- ) :: [] -> float
533
- ) :: [] -> float
534
- (VALUE lo_h
535
- (InputRef fed.head_of_household.rates.bracket.lo key_chain=[]) :: [rates] -> float
536
- ) :: [rates] -> float
537
- (VALUE hi_h
538
- (InputRef fed.head_of_household.rates.bracket.hi key_chain=[]) :: [rates] -> float
539
- ) :: [rates] -> float
540
- (VALUE rate_h
541
- (InputRef fed.head_of_household.rates.bracket.rate key_chain=[]) :: [rates] -> float
542
- ) :: [rates] -> float
543
- (VALUE hi_h_eff
544
- (Select
545
- (Call :core.eq
546
- (Ref hi_h) :: [rates] -> float
547
- (Const -1) :: [] -> integer
548
- ) :: [rates] -> boolean
549
- (Const 100000000000.0) :: [] -> float
550
- (Ref hi_h) :: [rates] -> float
551
- ) :: [rates] -> float
552
- ) :: [rates] -> float
553
- (VALUE amt_h
554
- (Call :core.clamp
555
- (Call :core.sub
556
- (Ref taxable_hoh) :: [] -> float
557
- (Ref lo_h) :: [rates] -> float
558
- ) :: [rates] -> float
559
- (Const 0) :: [] -> integer
560
- (Call :core.sub
561
- (Ref hi_h_eff) :: [rates] -> float
562
- (Ref lo_h) :: [rates] -> float
563
- ) :: [rates] -> float
564
- ) :: [rates] -> float
565
- ) :: [rates] -> float
566
- (VALUE fed_tax_hoh
567
- (Reduce :agg.sum over [rates]
568
- (Call :core.mul
569
- (Ref amt_h) :: [rates] -> float
570
- (Ref rate_h) :: [rates] -> float
571
- ) :: [rates] -> float
572
- ) :: [] -> float
573
- ) :: [] -> float
574
- (TRAIT in_br_h
575
- (Call :core.and
576
- (Call :core.gte
577
- (Ref taxable_hoh) :: [] -> float
578
- (Ref lo_h) :: [rates] -> float
579
- ) :: [rates] -> boolean
580
- (Call :core.lt
581
- (Ref taxable_hoh) :: [] -> float
582
- (Ref hi_h_eff) :: [rates] -> float
583
- ) :: [rates] -> boolean
584
- ) :: [rates] -> boolean
585
- ) :: [rates] -> boolean
586
- (VALUE fed_marginal_hoh
587
- (Reduce :agg.sum over [rates]
588
- (Select
589
- (Ref in_br_h) :: [rates] -> boolean
590
- (Ref rate_h) :: [rates] -> float
591
- (Const 0) :: [] -> integer
592
- ) :: [rates] -> float
593
- ) :: [] -> float
594
- ) :: [] -> float
595
- (VALUE fed_eff_hoh
596
- (Call :core.div
597
- (Ref fed_tax_hoh) :: [] -> float
598
- (Fold :agg.max
599
- (Tuple
600
- (InputRef income key_chain=[]) :: [] -> float
601
- (Const 1.0) :: [] -> float
602
- ) :: [] -> tuple<float>
603
- ) :: [] -> float
604
- ) :: [] -> float
605
- ) :: [] -> float
606
- (VALUE ss_tax_h
607
- (Ref ss_tax_s) :: [] -> float
608
- ) :: [] -> float
609
- (VALUE med_tax_h
610
- (Ref med_tax_s) :: [] -> float
611
- ) :: [] -> float
612
- (VALUE addl_threshold_hoh
613
- (Const 200000.0) :: [] -> float
614
- ) :: [] -> float
615
- (VALUE addl_med_tax_h
616
- (Call :core.mul
617
- (Fold :agg.max
618
- (Tuple
619
- (Call :core.sub
620
- (InputRef income key_chain=[]) :: [] -> float
621
- (Const 200000.0) :: [] -> float
622
- ) :: [] -> float
623
- (Const 0) :: [] -> integer
624
- ) :: [] -> tuple<float, integer>
625
- ) :: [] -> float
626
- (Const 0.009) :: [] -> float
627
- ) :: [] -> float
628
- ) :: [] -> float
629
- (VALUE fica_tax_hoh
630
- (Call :core.add
631
- (Call :core.add
632
- (Ref ss_tax_h) :: [] -> float
633
- (Ref med_tax_h) :: [] -> float
634
- ) :: [] -> float
635
- (Ref addl_med_tax_h) :: [] -> float
636
- ) :: [] -> float
637
- ) :: [] -> float
638
- (VALUE fica_eff_hoh
639
- (Call :core.div
640
- (Ref fica_tax_hoh) :: [] -> float
641
- (Fold :agg.max
642
- (Tuple
643
- (InputRef income key_chain=[]) :: [] -> float
644
- (Const 1.0) :: [] -> float
645
- ) :: [] -> tuple<float>
646
- ) :: [] -> float
647
- ) :: [] -> float
648
- ) :: [] -> float
649
- (VALUE total_tax_hoh
650
- (Call :core.add
651
- (Call :core.add
652
- (Call :core.add
653
- (Ref fed_tax_hoh) :: [] -> float
654
- (Ref fica_tax_hoh) :: [] -> float
655
- ) :: [] -> float
656
- (Ref state_tax) :: [] -> float
657
- ) :: [] -> float
658
- (Ref local_tax) :: [] -> float
659
- ) :: [] -> float
660
- ) :: [] -> float
661
- (VALUE total_eff_hoh
662
- (Call :core.div
663
- (Ref total_tax_hoh) :: [] -> float
664
- (Fold :agg.max
665
- (Tuple
666
- (InputRef income key_chain=[]) :: [] -> float
667
- (Const 1.0) :: [] -> float
668
- ) :: [] -> tuple<float>
669
- ) :: [] -> float
670
- ) :: [] -> float
671
- ) :: [] -> float
672
- (VALUE after_tax_hoh
673
- (Call :core.sub
674
- (InputRef income key_chain=[]) :: [] -> float
675
- (Ref total_tax_hoh) :: [] -> float
676
- ) :: [] -> float
677
- ) :: [] -> float
678
- (VALUE take_home_hoh
679
- (Call :core.sub
680
- (Ref after_tax_hoh) :: [] -> float
681
- (InputRef retirement_contrib key_chain=[]) :: [] -> float
682
- ) :: [] -> float
683
- ) :: [] -> float
196
+ ) :: [statuses] -> float
197
+ ) :: [statuses] -> float
684
198
  (VALUE summary
685
199
  (Hash
686
- (Pair single
200
+ (Pair filing_status
201
+ (InputRef statuses.status.name key_chain=[]) :: [statuses] -> string
202
+ ) :: [statuses] -> pair
203
+ (Pair federal
687
204
  (Hash
688
- (Pair federal
689
- (Hash
690
- (Pair marginal
691
- (Ref fed_marginal_single) :: [] -> float
692
- ) :: [] -> pair
693
- (Pair effective
694
- (Ref fed_eff_single) :: [] -> float
695
- ) :: [] -> pair
696
- (Pair tax
697
- (Ref fed_tax_single) :: [] -> float
698
- ) :: [] -> pair
699
- ) :: [] -> hash
700
- ) :: [] -> pair
701
- (Pair fica
702
- (Hash
703
- (Pair effective
704
- (Ref fica_eff_single) :: [] -> float
705
- ) :: [] -> pair
706
- (Pair tax
707
- (Ref fica_tax_single) :: [] -> float
708
- ) :: [] -> pair
709
- ) :: [] -> hash
710
- ) :: [] -> pair
711
- (Pair state
712
- (Hash
713
- (Pair marginal
714
- (InputRef state_rate key_chain=[]) :: [] -> float
715
- ) :: [] -> pair
716
- (Pair effective
717
- (InputRef state_rate key_chain=[]) :: [] -> float
718
- ) :: [] -> pair
719
- (Pair tax
720
- (Ref state_tax) :: [] -> float
721
- ) :: [] -> pair
722
- ) :: [] -> hash
723
- ) :: [] -> pair
724
- (Pair local
725
- (Hash
726
- (Pair marginal
727
- (InputRef local_rate key_chain=[]) :: [] -> float
728
- ) :: [] -> pair
729
- (Pair effective
730
- (InputRef local_rate key_chain=[]) :: [] -> float
731
- ) :: [] -> pair
732
- (Pair tax
733
- (Ref local_tax) :: [] -> float
734
- ) :: [] -> pair
735
- ) :: [] -> hash
736
- ) :: [] -> pair
737
- (Pair total
738
- (Hash
739
- (Pair effective
740
- (Ref total_eff_single) :: [] -> float
741
- ) :: [] -> pair
742
- (Pair tax
743
- (Ref total_tax_single) :: [] -> float
744
- ) :: [] -> pair
745
- ) :: [] -> hash
746
- ) :: [] -> pair
747
- (Pair after_tax
748
- (Ref after_tax_single) :: [] -> float
749
- ) :: [] -> pair
750
- (Pair retirement_contrib
751
- (InputRef retirement_contrib key_chain=[]) :: [] -> float
752
- ) :: [] -> pair
753
- (Pair take_home
754
- (Ref take_home_single) :: [] -> float
755
- ) :: [] -> pair
756
- ) :: [] -> hash
757
- ) :: [] -> pair
758
- (Pair married_joint
205
+ (Pair marginal
206
+ (Ref fed_marg) :: [statuses] -> float
207
+ ) :: [statuses] -> pair
208
+ (Pair effective
209
+ (Ref fed_eff) :: [statuses] -> float
210
+ ) :: [statuses] -> pair
211
+ (Pair tax
212
+ (Ref fed_tax) :: [statuses] -> float
213
+ ) :: [statuses] -> pair
214
+ ) :: [statuses] -> hash
215
+ ) :: [statuses] -> pair
216
+ (Pair fica
759
217
  (Hash
760
- (Pair federal
761
- (Hash
762
- (Pair marginal
763
- (Ref fed_marginal_mj) :: [] -> float
764
- ) :: [] -> pair
765
- (Pair effective
766
- (Ref fed_eff_mj) :: [] -> float
767
- ) :: [] -> pair
768
- (Pair tax
769
- (Ref fed_tax_mj) :: [] -> float
770
- ) :: [] -> pair
771
- ) :: [] -> hash
772
- ) :: [] -> pair
773
- (Pair fica
774
- (Hash
775
- (Pair effective
776
- (Ref fica_eff_mj) :: [] -> float
777
- ) :: [] -> pair
778
- (Pair tax
779
- (Ref fica_tax_mj) :: [] -> float
780
- ) :: [] -> pair
781
- ) :: [] -> hash
782
- ) :: [] -> pair
783
- (Pair state
784
- (Hash
785
- (Pair marginal
786
- (InputRef state_rate key_chain=[]) :: [] -> float
787
- ) :: [] -> pair
788
- (Pair effective
789
- (InputRef state_rate key_chain=[]) :: [] -> float
790
- ) :: [] -> pair
791
- (Pair tax
792
- (Ref state_tax) :: [] -> float
793
- ) :: [] -> pair
794
- ) :: [] -> hash
795
- ) :: [] -> pair
796
- (Pair local
797
- (Hash
798
- (Pair marginal
799
- (InputRef local_rate key_chain=[]) :: [] -> float
800
- ) :: [] -> pair
801
- (Pair effective
802
- (InputRef local_rate key_chain=[]) :: [] -> float
803
- ) :: [] -> pair
804
- (Pair tax
805
- (Ref local_tax) :: [] -> float
806
- ) :: [] -> pair
807
- ) :: [] -> hash
808
- ) :: [] -> pair
809
- (Pair total
810
- (Hash
811
- (Pair effective
812
- (Ref total_eff_mj) :: [] -> float
813
- ) :: [] -> pair
814
- (Pair tax
815
- (Ref total_tax_mj) :: [] -> float
816
- ) :: [] -> pair
817
- ) :: [] -> hash
818
- ) :: [] -> pair
819
- (Pair after_tax
820
- (Ref after_tax_mj) :: [] -> float
218
+ (Pair effective
219
+ (Ref fica_eff) :: [statuses] -> float
220
+ ) :: [statuses] -> pair
221
+ (Pair tax
222
+ (Ref fica_tax) :: [statuses] -> float
223
+ ) :: [statuses] -> pair
224
+ ) :: [statuses] -> hash
225
+ ) :: [statuses] -> pair
226
+ (Pair state
227
+ (Hash
228
+ (Pair marginal
229
+ (InputRef state_rate key_chain=[]) :: [] -> float
821
230
  ) :: [] -> pair
822
- (Pair retirement_contrib
823
- (InputRef retirement_contrib key_chain=[]) :: [] -> float
231
+ (Pair effective
232
+ (InputRef state_rate key_chain=[]) :: [] -> float
824
233
  ) :: [] -> pair
825
- (Pair take_home
826
- (Ref take_home_mj) :: [] -> float
234
+ (Pair tax
235
+ (Ref state_tax) :: [] -> float
827
236
  ) :: [] -> pair
828
237
  ) :: [] -> hash
829
238
  ) :: [] -> pair
830
- (Pair married_separate
239
+ (Pair local
831
240
  (Hash
832
- (Pair federal
833
- (Hash
834
- (Pair marginal
835
- (Ref fed_marginal_ms) :: [] -> float
836
- ) :: [] -> pair
837
- (Pair effective
838
- (Ref fed_eff_ms) :: [] -> float
839
- ) :: [] -> pair
840
- (Pair tax
841
- (Ref fed_tax_ms) :: [] -> float
842
- ) :: [] -> pair
843
- ) :: [] -> hash
844
- ) :: [] -> pair
845
- (Pair fica
846
- (Hash
847
- (Pair effective
848
- (Ref fica_eff_ms) :: [] -> float
849
- ) :: [] -> pair
850
- (Pair tax
851
- (Ref fica_tax_ms) :: [] -> float
852
- ) :: [] -> pair
853
- ) :: [] -> hash
854
- ) :: [] -> pair
855
- (Pair state
856
- (Hash
857
- (Pair marginal
858
- (InputRef state_rate key_chain=[]) :: [] -> float
859
- ) :: [] -> pair
860
- (Pair effective
861
- (InputRef state_rate key_chain=[]) :: [] -> float
862
- ) :: [] -> pair
863
- (Pair tax
864
- (Ref state_tax) :: [] -> float
865
- ) :: [] -> pair
866
- ) :: [] -> hash
867
- ) :: [] -> pair
868
- (Pair local
869
- (Hash
870
- (Pair marginal
871
- (InputRef local_rate key_chain=[]) :: [] -> float
872
- ) :: [] -> pair
873
- (Pair effective
874
- (InputRef local_rate key_chain=[]) :: [] -> float
875
- ) :: [] -> pair
876
- (Pair tax
877
- (Ref local_tax) :: [] -> float
878
- ) :: [] -> pair
879
- ) :: [] -> hash
880
- ) :: [] -> pair
881
- (Pair total
882
- (Hash
883
- (Pair effective
884
- (Ref total_eff_ms) :: [] -> float
885
- ) :: [] -> pair
886
- (Pair tax
887
- (Ref total_tax_ms) :: [] -> float
888
- ) :: [] -> pair
889
- ) :: [] -> hash
890
- ) :: [] -> pair
891
- (Pair after_tax
892
- (Ref after_tax_ms) :: [] -> float
241
+ (Pair marginal
242
+ (InputRef local_rate key_chain=[]) :: [] -> float
893
243
  ) :: [] -> pair
894
- (Pair retirement_contrib
895
- (InputRef retirement_contrib key_chain=[]) :: [] -> float
244
+ (Pair effective
245
+ (InputRef local_rate key_chain=[]) :: [] -> float
896
246
  ) :: [] -> pair
897
- (Pair take_home
898
- (Ref take_home_ms) :: [] -> float
247
+ (Pair tax
248
+ (Ref local_tax) :: [] -> float
899
249
  ) :: [] -> pair
900
250
  ) :: [] -> hash
901
251
  ) :: [] -> pair
902
- (Pair head_of_household
252
+ (Pair total
903
253
  (Hash
904
- (Pair federal
905
- (Hash
906
- (Pair marginal
907
- (Ref fed_marginal_hoh) :: [] -> float
908
- ) :: [] -> pair
909
- (Pair effective
910
- (Ref fed_eff_hoh) :: [] -> float
911
- ) :: [] -> pair
912
- (Pair tax
913
- (Ref fed_tax_hoh) :: [] -> float
914
- ) :: [] -> pair
915
- ) :: [] -> hash
916
- ) :: [] -> pair
917
- (Pair fica
918
- (Hash
919
- (Pair effective
920
- (Ref fica_eff_hoh) :: [] -> float
921
- ) :: [] -> pair
922
- (Pair tax
923
- (Ref fica_tax_hoh) :: [] -> float
924
- ) :: [] -> pair
925
- ) :: [] -> hash
926
- ) :: [] -> pair
927
- (Pair state
928
- (Hash
929
- (Pair marginal
930
- (InputRef state_rate key_chain=[]) :: [] -> float
931
- ) :: [] -> pair
932
- (Pair effective
933
- (InputRef state_rate key_chain=[]) :: [] -> float
934
- ) :: [] -> pair
935
- (Pair tax
936
- (Ref state_tax) :: [] -> float
937
- ) :: [] -> pair
938
- ) :: [] -> hash
939
- ) :: [] -> pair
940
- (Pair local
941
- (Hash
942
- (Pair marginal
943
- (InputRef local_rate key_chain=[]) :: [] -> float
944
- ) :: [] -> pair
945
- (Pair effective
946
- (InputRef local_rate key_chain=[]) :: [] -> float
947
- ) :: [] -> pair
948
- (Pair tax
949
- (Ref local_tax) :: [] -> float
950
- ) :: [] -> pair
951
- ) :: [] -> hash
952
- ) :: [] -> pair
953
- (Pair total
954
- (Hash
955
- (Pair effective
956
- (Ref total_eff_hoh) :: [] -> float
957
- ) :: [] -> pair
958
- (Pair tax
959
- (Ref total_tax_hoh) :: [] -> float
960
- ) :: [] -> pair
961
- ) :: [] -> hash
962
- ) :: [] -> pair
963
- (Pair after_tax
964
- (Ref after_tax_hoh) :: [] -> float
965
- ) :: [] -> pair
966
- (Pair retirement_contrib
967
- (InputRef retirement_contrib key_chain=[]) :: [] -> float
968
- ) :: [] -> pair
969
- (Pair take_home
970
- (Ref take_home_hoh) :: [] -> float
971
- ) :: [] -> pair
972
- ) :: [] -> hash
254
+ (Pair effective
255
+ (Ref total_eff) :: [statuses] -> float
256
+ ) :: [statuses] -> pair
257
+ (Pair tax
258
+ (Ref total_tax) :: [statuses] -> float
259
+ ) :: [statuses] -> pair
260
+ ) :: [statuses] -> hash
261
+ ) :: [statuses] -> pair
262
+ (Pair after_tax
263
+ (Ref after_tax) :: [statuses] -> float
264
+ ) :: [statuses] -> pair
265
+ (Pair retirement_contrib
266
+ (InputRef retirement_contrib key_chain=[]) :: [] -> float
973
267
  ) :: [] -> pair
974
- ) :: [] -> hash
975
- ) :: [] -> hash
268
+ (Pair take_home
269
+ (Ref take_home) :: [statuses] -> float
270
+ ) :: [statuses] -> pair
271
+ ) :: [statuses] -> hash
272
+ ) :: [statuses] -> hash
976
273
  )