kumi 0.0.24 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/README.md +70 -71
- data/data/functions/agg/boolean.yaml +6 -2
- data/data/functions/agg/numeric.yaml +32 -16
- data/data/functions/agg/string.yaml +4 -3
- data/data/functions/core/arithmetic.yaml +62 -14
- data/data/functions/core/boolean.yaml +12 -6
- data/data/functions/core/comparison.yaml +25 -13
- data/data/functions/core/constructor.yaml +16 -8
- data/data/functions/core/select.yaml +3 -1
- data/data/functions/core/stencil.yaml +14 -5
- data/data/functions/core/string.yaml +9 -4
- data/data/kernels/ruby/agg/numeric.yaml +1 -1
- data/docs/UNSAT_DETECTION.md +83 -0
- data/golden/array_element/expected/nast.txt +1 -1
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/nast.txt +7 -7
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/nast.txt +2 -2
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/snast.txt +3 -3
- data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/snast.txt +2 -2
- data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
- data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
- data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
- data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
- data/golden/chained_fusion/expected/nast.txt +2 -2
- data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
- data/golden/element_arrays/expected/nast.txt +2 -2
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/element_arrays/expected/snast.txt +1 -1
- data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
- data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
- data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
- data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
- data/golden/function_overload/expected/ast.txt +29 -0
- data/golden/function_overload/expected/input_plan.txt +4 -0
- data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
- data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
- data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
- data/golden/function_overload/expected/lir_03_cse.txt +20 -0
- data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
- data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
- data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
- data/golden/function_overload/expected/nast.txt +22 -0
- data/golden/function_overload/expected/schema_javascript.mjs +12 -0
- data/golden/function_overload/expected/schema_ruby.rb +39 -0
- data/golden/function_overload/expected/snast.txt +22 -0
- data/golden/function_overload/input.json +8 -0
- data/golden/function_overload/schema.kumi +19 -0
- data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
- data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
- data/golden/game_of_life/expected/lir_02_inlined.txt +1294 -1294
- data/golden/game_of_life/expected/lir_03_cse.txt +403 -399
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +403 -399
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +403 -399
- data/golden/game_of_life/expected/lir_06_const_prop.txt +403 -399
- data/golden/game_of_life/expected/nast.txt +4 -4
- data/golden/game_of_life/expected/schema_javascript.mjs +87 -85
- data/golden/game_of_life/expected/schema_ruby.rb +88 -86
- data/golden/game_of_life/expected/snast.txt +10 -10
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/nast.txt +1 -1
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/snast.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
- data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
- data/golden/hierarchical_complex/expected/nast.txt +3 -3
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
- data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
- data/golden/hierarchical_complex/expected/snast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
- data/golden/input_reference/expected/nast.txt +2 -2
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
- data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
- data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
- data/golden/interleaved_fusion/expected/nast.txt +2 -2
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
- data/golden/let_inline/expected/nast.txt +4 -4
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
- data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
- data/golden/loop_fusion/expected/nast.txt +1 -1
- data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
- data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
- data/golden/min_reduce_scope/expected/nast.txt +3 -3
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/snast.txt +1 -1
- data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
- data/golden/mixed_dimensions/expected/nast.txt +2 -2
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
- data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
- data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
- data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
- data/golden/multirank_hoisting/expected/nast.txt +7 -7
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
- data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
- data/golden/nested_hash/expected/nast.txt +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
- data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
- data/golden/reduction_broadcast/expected/nast.txt +3 -3
- data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
- data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
- data/golden/reduction_broadcast/expected/snast.txt +1 -1
- data/golden/roll/expected/schema_ruby.rb +1 -1
- data/golden/shift/expected/schema_ruby.rb +1 -1
- data/golden/shift_2d/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
- data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
- data/golden/simple_math/expected/lir_03_cse.txt +1 -1
- data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
- data/golden/simple_math/expected/nast.txt +5 -5
- data/golden/simple_math/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/snast.txt +2 -2
- data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
- data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
- data/golden/streaming_basics/expected/nast.txt +8 -8
- data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
- data/golden/streaming_basics/expected/snast.txt +1 -1
- data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
- data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
- data/golden/tuples/expected/lir_02_inlined.txt +5 -5
- data/golden/tuples/expected/lir_03_cse.txt +5 -5
- data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
- data/golden/tuples/expected/nast.txt +4 -4
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples/expected/snast.txt +6 -6
- data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +17 -17
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +13 -13
- data/golden/tuples_and_arrays/expected/nast.txt +3 -3
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
- data/golden/tuples_and_arrays/expected/snast.txt +2 -2
- data/golden/us_tax_2024/expected/ast.txt +63 -670
- data/golden/us_tax_2024/expected/input_plan.txt +8 -45
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
- data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2400
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2400
- data/golden/us_tax_2024/expected/nast.txt +123 -826
- data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
- data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
- data/golden/us_tax_2024/expected/snast.txt +155 -858
- data/golden/us_tax_2024/expected.json +120 -1
- data/golden/us_tax_2024/input.json +18 -9
- data/golden/us_tax_2024/schema.kumi +48 -178
- data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
- data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
- data/golden/with_constants/expected/lir_03_cse.txt +1 -1
- data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
- data/golden/with_constants/expected/nast.txt +2 -2
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/golden/with_constants/expected/snast.txt +2 -2
- data/lib/kumi/analyzer.rb +12 -12
- data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
- data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
- data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +118 -74
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
- data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
- data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
- data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
- data/lib/kumi/core/error_reporter.rb +36 -1
- data/lib/kumi/core/errors.rb +33 -1
- data/lib/kumi/core/functions/function_spec.rb +5 -4
- data/lib/kumi/core/functions/loader.rb +17 -1
- data/lib/kumi/core/functions/overload_resolver.rb +164 -0
- data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
- data/lib/kumi/core/functions/type_rules.rb +155 -35
- data/lib/kumi/core/types/inference.rb +29 -22
- data/lib/kumi/core/types/normalizer.rb +29 -45
- data/lib/kumi/core/types/validator.rb +16 -27
- data/lib/kumi/core/types/value_objects.rb +116 -0
- data/lib/kumi/core/types.rb +45 -37
- data/lib/kumi/registry_v2/loader.rb +90 -0
- data/lib/kumi/registry_v2.rb +18 -1
- data/lib/kumi/version.rb +1 -1
- metadata +21 -7
- data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
- data/lib/kumi/core/atom_unsat_solver.rb +0 -396
- data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
- data/lib/kumi/core/types/builder.rb +0 -23
- data/lib/kumi/core/types/compatibility.rb +0 -96
- 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
|
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
|
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
|
26
|
-
(InputRef
|
27
|
-
) :: [rates] -> float
|
28
|
-
(VALUE
|
29
|
-
(InputRef
|
30
|
-
) :: [rates] -> float
|
31
|
-
(VALUE
|
32
|
-
(InputRef
|
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
|
37
|
+
(VALUE hi_eff
|
38
38
|
(Select
|
39
39
|
(Call :core.eq
|
40
|
-
(Ref
|
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
|
45
|
-
) :: [rates] -> float
|
46
|
-
) :: [rates] -> float
|
47
|
-
(VALUE
|
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
|
51
|
-
(Ref
|
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
|
56
|
-
(Ref
|
57
|
-
) :: [rates] -> float
|
58
|
-
) :: [rates] -> float
|
59
|
-
) :: [rates] -> float
|
60
|
-
(VALUE
|
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
|
64
|
-
(Ref
|
65
|
-
) :: [rates] -> float
|
66
|
-
) :: [] -> float
|
67
|
-
) :: [] -> float
|
68
|
-
(
|
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
|
72
|
-
(Ref
|
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
|
76
|
-
(Ref
|
77
|
-
) :: [rates] -> boolean
|
78
|
-
) :: [rates] -> boolean
|
79
|
-
) :: [rates] -> boolean
|
80
|
-
(VALUE
|
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
|
84
|
-
(Ref
|
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
|
86
|
+
) :: [statuses, rates] -> float
|
87
|
+
) :: [statuses] -> float
|
88
|
+
) :: [statuses] -> float
|
89
|
+
(VALUE fed_eff
|
90
90
|
(Call :core.div
|
91
|
-
(Ref
|
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
|
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
|
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
|
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
|
-
(
|
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
|
141
|
+
) :: [statuses] -> float
|
142
|
+
) :: [statuses] -> float
|
143
|
+
(VALUE fica_tax
|
469
144
|
(Call :core.add
|
470
145
|
(Call :core.add
|
471
|
-
(Ref
|
472
|
-
(Ref
|
146
|
+
(Ref ss_tax) :: [] -> float
|
147
|
+
(Ref med_tax) :: [] -> float
|
473
148
|
) :: [] -> float
|
474
|
-
(Ref
|
475
|
-
) :: [] -> float
|
476
|
-
) :: [] -> float
|
477
|
-
(VALUE
|
149
|
+
(Ref addl_med_tax) :: [statuses] -> float
|
150
|
+
) :: [statuses] -> float
|
151
|
+
) :: [statuses] -> float
|
152
|
+
(VALUE fica_eff
|
478
153
|
(Call :core.div
|
479
|
-
(Ref
|
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
|
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
|
493
|
-
(Ref
|
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
|
173
|
+
) :: [statuses] -> float
|
174
|
+
) :: [statuses] -> float
|
175
|
+
(VALUE total_eff
|
501
176
|
(Call :core.div
|
502
|
-
(Ref
|
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
|
184
|
+
) :: [statuses] -> float
|
185
|
+
) :: [statuses] -> float
|
186
|
+
(VALUE after_tax
|
512
187
|
(Call :core.sub
|
513
188
|
(InputRef income key_chain=[]) :: [] -> float
|
514
|
-
(Ref
|
515
|
-
) :: [] -> float
|
516
|
-
) :: [] -> float
|
517
|
-
(VALUE
|
189
|
+
(Ref total_tax) :: [statuses] -> float
|
190
|
+
) :: [statuses] -> float
|
191
|
+
) :: [statuses] -> float
|
192
|
+
(VALUE take_home
|
518
193
|
(Call :core.sub
|
519
|
-
(Ref
|
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
|
200
|
+
(Pair filing_status
|
201
|
+
(InputRef statuses.status.name key_chain=[]) :: [statuses] -> string
|
202
|
+
) :: [statuses] -> pair
|
203
|
+
(Pair federal
|
687
204
|
(Hash
|
688
|
-
(Pair
|
689
|
-
(
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
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
|
761
|
-
(
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
) :: [] ->
|
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
|
823
|
-
(InputRef
|
231
|
+
(Pair effective
|
232
|
+
(InputRef state_rate key_chain=[]) :: [] -> float
|
824
233
|
) :: [] -> pair
|
825
|
-
(Pair
|
826
|
-
(Ref
|
234
|
+
(Pair tax
|
235
|
+
(Ref state_tax) :: [] -> float
|
827
236
|
) :: [] -> pair
|
828
237
|
) :: [] -> hash
|
829
238
|
) :: [] -> pair
|
830
|
-
(Pair
|
239
|
+
(Pair local
|
831
240
|
(Hash
|
832
|
-
(Pair
|
833
|
-
(
|
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
|
895
|
-
(InputRef
|
244
|
+
(Pair effective
|
245
|
+
(InputRef local_rate key_chain=[]) :: [] -> float
|
896
246
|
) :: [] -> pair
|
897
|
-
(Pair
|
898
|
-
(Ref
|
247
|
+
(Pair tax
|
248
|
+
(Ref local_tax) :: [] -> float
|
899
249
|
) :: [] -> pair
|
900
250
|
) :: [] -> hash
|
901
251
|
) :: [] -> pair
|
902
|
-
(Pair
|
252
|
+
(Pair total
|
903
253
|
(Hash
|
904
|
-
(Pair
|
905
|
-
(
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
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
|
-
|
975
|
-
|
268
|
+
(Pair take_home
|
269
|
+
(Ref take_home) :: [statuses] -> float
|
270
|
+
) :: [statuses] -> pair
|
271
|
+
) :: [statuses] -> hash
|
272
|
+
) :: [statuses] -> hash
|
976
273
|
)
|