gitextract_5jgx8w8i/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.md │ └── workflows/ │ └── checks.yml ├── .gitignore ├── .rustfmt.toml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Cargo.toml ├── FAQ.md ├── FEATURES.md ├── GUIDE.md ├── LICENSE-APACHE ├── README.md ├── cspell.json ├── docs/ │ ├── builtins.md │ ├── cli-arguments.md │ ├── compilation-and-readback.md │ ├── compiler-options.md │ ├── defining-data-types.md │ ├── dups-and-sups.md │ ├── ffi.md │ ├── imports.md │ ├── lazy-definitions.md │ ├── native-numbers.md │ ├── pattern-matching.md │ ├── syntax.md │ ├── type-checking.md │ ├── using-scopeless-lambdas.md │ └── writing-fusing-functions.md ├── examples/ │ ├── bitonic_sort.bend │ ├── bubble_sort.bend │ ├── callcc.bend │ ├── example_fun.bend │ ├── fib.bend │ ├── fusing_add.bend │ ├── fusing_not.bend │ ├── gen_tree.bend │ ├── hello_world.bend │ ├── insertion_sort.bend │ ├── list.bend │ ├── parallel_and.bend │ ├── parallel_sum.bend │ ├── queue.bend │ ├── quick_sort.bend │ └── radix_sort.bend ├── justfile ├── src/ │ ├── diagnostics.rs │ ├── fun/ │ │ ├── builtins.bend │ │ ├── builtins.rs │ │ ├── check/ │ │ │ ├── check_untyped.rs │ │ │ ├── mod.rs │ │ │ ├── set_entrypoint.rs │ │ │ ├── shared_names.rs │ │ │ ├── type_check.rs │ │ │ ├── unbound_refs.rs │ │ │ └── unbound_vars.rs │ │ ├── display.rs │ │ ├── load_book.rs │ │ ├── mod.rs │ │ ├── net_to_term.rs │ │ ├── parser.rs │ │ ├── term_to_net.rs │ │ └── transform/ │ │ ├── apply_args.rs │ │ ├── definition_merge.rs │ │ ├── definition_pruning.rs │ │ ├── desugar_bend.rs │ │ ├── desugar_fold.rs │ │ ├── desugar_match_defs.rs │ │ ├── desugar_open.rs │ │ ├── desugar_use.rs │ │ ├── desugar_with_blocks.rs │ │ ├── encode_adts.rs │ │ ├── encode_match_terms.rs │ │ ├── expand_generated.rs │ │ ├── expand_main.rs │ │ ├── fix_match_defs.rs │ │ ├── fix_match_terms.rs │ │ ├── float_combinators.rs │ │ ├── lift_local_defs.rs │ │ ├── linearize_matches.rs │ │ ├── linearize_vars.rs │ │ ├── mod.rs │ │ ├── resolve_refs.rs │ │ ├── resolve_type_ctrs.rs │ │ ├── resugar_list.rs │ │ ├── resugar_string.rs │ │ └── unique_names.rs │ ├── hvm/ │ │ ├── add_recursive_priority.rs │ │ ├── check_net_size.rs │ │ ├── eta_reduce.rs │ │ ├── inline.rs │ │ ├── mod.rs │ │ ├── mutual_recursion.message │ │ ├── mutual_recursion.rs │ │ └── prune.rs │ ├── imp/ │ │ ├── gen_map_get.rs │ │ ├── mod.rs │ │ ├── order_kwargs.rs │ │ ├── parser.rs │ │ └── to_fun.rs │ ├── imports/ │ │ ├── book.rs │ │ ├── loader.rs │ │ ├── mod.rs │ │ └── packages.rs │ ├── lib.rs │ ├── main.rs │ ├── net/ │ │ ├── hvm_to_net.rs │ │ └── mod.rs │ └── utils.rs └── tests/ ├── golden_tests/ │ ├── check_file/ │ │ ├── fail_type_bad_rec_fn_adt.bend │ │ ├── non_exaustive_limit.bend │ │ └── type_err_match_arm.bend │ ├── cli/ │ │ ├── compile_all.args │ │ ├── compile_all.bend │ │ ├── compile_inline.args │ │ ├── compile_inline.bend │ │ ├── compile_no_opts.args │ │ ├── compile_no_opts.bend │ │ ├── compile_pre_reduce.args │ │ ├── compile_pre_reduce.bend │ │ ├── compile_strict_loop.args │ │ ├── compile_strict_loop.bend │ │ ├── compile_wrong_opt.args │ │ ├── compile_wrong_opt.bend │ │ ├── custom_hvm_bin.args │ │ ├── custom_hvm_bin.bend │ │ ├── debug_list_map.args │ │ ├── debug_list_map.bend │ │ ├── debug_u60_to_nat.args │ │ ├── debug_u60_to_nat.bend │ │ ├── desugar_bool_scott.args │ │ ├── desugar_bool_scott.bend │ │ ├── desugar_float_combinators.args │ │ ├── desugar_float_combinators.bend │ │ ├── desugar_linearize_matches.args │ │ ├── desugar_linearize_matches.bend │ │ ├── desugar_linearize_matches_alt.args │ │ ├── desugar_linearize_matches_alt.bend │ │ ├── desugar_merge.args │ │ ├── desugar_merge.bend │ │ ├── desugar_pretty.args │ │ ├── desugar_pretty.bend │ │ ├── desugar_prune.args │ │ ├── desugar_prune.bend │ │ ├── gen_hvm_no_eta_by_default.args │ │ ├── gen_hvm_no_eta_by_default.bend │ │ ├── input_file_not_found.args │ │ ├── input_file_not_found.bend │ │ ├── net_size_too_large.args │ │ ├── net_size_too_large.bend │ │ ├── no_check_net_size.args │ │ ├── no_check_net_size.bend │ │ ├── run_add.args │ │ ├── run_add.bend │ │ ├── run_pretty.args │ │ ├── run_pretty.bend │ │ ├── tuple_readback.args │ │ ├── tuple_readback.bend │ │ ├── warn_and_err.args │ │ └── warn_and_err.bend │ ├── compile_entrypoint/ │ │ └── foo.bend │ ├── compile_file/ │ │ ├── 360_no_scope.bend │ │ ├── add_args.bend │ │ ├── addition.bend │ │ ├── addition_const.bend │ │ ├── ask_outside_do.bend │ │ ├── church_one.bend │ │ ├── church_zero.bend │ │ ├── complicated_dup.bend │ │ ├── crlf.bend │ │ ├── cyclic_global_lam.bend │ │ ├── def_pat_unscoped.bend │ │ ├── dup_apply.bend │ │ ├── dup_global_lam.bend │ │ ├── elif.bend │ │ ├── elif_fun.bend │ │ ├── elif_no_else.bend │ │ ├── erased_dup.bend │ │ ├── error_data_def_name.bend │ │ ├── error_messages.bend │ │ ├── f24_oper.bend │ │ ├── fst_snd.bend │ │ ├── global_lam.bend │ │ ├── i24_oper.bend │ │ ├── id.bend │ │ ├── infer_dup.bend │ │ ├── inlining.bend │ │ ├── just_a_name.bend │ │ ├── just_data.bend │ │ ├── just_paren.bend │ │ ├── just_rule_paren.bend │ │ ├── let_substitution.bend │ │ ├── let_tup.bend │ │ ├── lets.bend │ │ ├── long_name.bend │ │ ├── match.bend │ │ ├── mismatched_ask_statements.bend │ │ ├── missing_adt_eq.bend │ │ ├── missing_ctrs.bend │ │ ├── missing_pat.bend │ │ ├── names_starting_with_keywords.bend │ │ ├── nested_ctr_wrong_arity.bend │ │ ├── nested_let.bend │ │ ├── number_too_large.bend │ │ ├── nums.bend │ │ ├── op2.bend │ │ ├── redex_order.bend │ │ ├── redex_order_recursive.bend │ │ ├── ref_to_main.bend │ │ ├── ref_to_ref.bend │ │ ├── repeated_bind_rule.bend │ │ ├── simple_tup.bend │ │ ├── switch_all_patterns.bend │ │ ├── switch_in_switch_arg.bend │ │ ├── switch_incomplete.bend │ │ ├── switch_unscoped_lambda.bend │ │ ├── top_level_name_slashslash.bend │ │ ├── tup.bend │ │ ├── tup_add.bend │ │ ├── unbound_unscoped_var.bend │ │ ├── unbound_var.bend │ │ ├── unbound_var_scope.bend │ │ ├── unbound_with_tup_pattern.bend │ │ ├── underscore.bend │ │ ├── unexpected_top_char.bend │ │ ├── unscoped_dup_use.bend │ │ ├── unscoped_supercombinator.bend │ │ ├── unused_let.bend │ │ ├── unused_unscoped_bind.bend │ │ ├── variable_name_double_underscore.bend │ │ ├── vicious_circles.bend │ │ ├── warn_and_err.bend │ │ ├── with_clause_parse_err.bend │ │ ├── wrong_ctr_arity.bend │ │ ├── wrong_ctr_var_arity.bend │ │ ├── wrong_nums.bend │ │ └── wrong_unicode_escape.bend │ ├── compile_file_o_all/ │ │ ├── addition.bend │ │ ├── addition_var_fst.bend │ │ ├── adt_option_and.bend │ │ ├── adt_string.bend │ │ ├── and.bend │ │ ├── bad_parens_making_erased_let.bend │ │ ├── bool.bend │ │ ├── cyclic_dup.bend │ │ ├── double_main.bend │ │ ├── eta_chain.bend │ │ ├── ex0.bend │ │ ├── ex2.bend │ │ ├── example.bend │ │ ├── exp.bend │ │ ├── expr.bend │ │ ├── extracted_match_pred.bend │ │ ├── fst.bend │ │ ├── fst_fst.bend │ │ ├── hvm1_main.bend │ │ ├── inline_app.bend │ │ ├── inlining.bend │ │ ├── linearize_match.bend │ │ ├── list_merge_sort.bend │ │ ├── list_reverse.bend │ │ ├── match_adt_non_exhaustive.bend │ │ ├── match_dup_and_reconstruction.bend │ │ ├── match_mult_linearization.bend │ │ ├── match_num_explicit_bind.bend │ │ ├── match_tup.bend │ │ ├── merge_definitions.bend │ │ ├── non_exhaustive_and.bend │ │ ├── non_exhaustive_different_types.bend │ │ ├── non_exhaustive_pattern.bend │ │ ├── non_exhaustive_tree.bend │ │ ├── num_pattern_with_var.bend │ │ ├── recursive_combinator_inactive.bend │ │ ├── repeated_name_trucation.bend │ │ ├── scrutinee_reconstruction.bend │ │ ├── self_ref.bend │ │ ├── snd.bend │ │ ├── spacing.bend │ │ ├── spacing2.bend │ │ ├── str.bend │ │ ├── sum_predicates.bend │ │ ├── tagged_dup.bend │ │ ├── tagged_lam.bend │ │ ├── tagged_sup.bend │ │ ├── unapplied_eta.bend │ │ ├── unscoped_eta.bend │ │ ├── var_shadows_ref.bend │ │ └── weekday.bend │ ├── compile_file_o_no_all/ │ │ ├── bitonic_sort.bend │ │ ├── list_reverse.bend │ │ ├── redex_order.bend │ │ └── sum_tree.bend │ ├── compile_long/ │ │ ├── huge_tree.bend │ │ └── long_str_file.bend │ ├── desugar_file/ │ │ ├── ask_branch.bend │ │ ├── bind_syntax.bend │ │ ├── combinators.bend │ │ ├── deref_loop.bend │ │ ├── dup_linearization.bend │ │ ├── local_def_shadow.bend │ │ ├── main_aux.bend │ │ ├── mapper_syntax.bend │ │ ├── switch_with_use.bend │ │ ├── tree_syntax.bend │ │ ├── use_id.bend │ │ ├── use_shadow.bend │ │ └── used_once_names.bend │ ├── encode_pattern_match/ │ │ ├── adt_tup_era.bend │ │ ├── and3.bend │ │ ├── bool.bend │ │ ├── bool_tup.bend │ │ ├── box.bend │ │ ├── common.bend │ │ ├── concat.bend │ │ ├── concat_def.bend │ │ ├── def_tups.bend │ │ ├── definition_merge.bend │ │ ├── expr.bend │ │ ├── flatten_era_pat.bend │ │ ├── full_map.bend │ │ ├── is_some_some.bend │ │ ├── list_merge_sort.bend │ │ ├── list_str_encoding_undeclared_fn.bend │ │ ├── list_str_encoding_undeclared_map.bend │ │ ├── match_adt_unscoped_in_arm.bend │ │ ├── match_adt_unscoped_lambda.bend │ │ ├── match_adt_unscoped_var.bend │ │ ├── match_auto_linearization.bend │ │ ├── match_bind.bend │ │ ├── match_num_adt_tup_parser.bend │ │ ├── match_num_pred.bend │ │ ├── match_syntax.bend │ │ ├── merge_recursive.bend │ │ ├── no_patterns.bend │ │ ├── non_matching_fst_arg.bend │ │ ├── ntup_sum.bend │ │ ├── pattern_match_encoding.bend │ │ ├── switch_in_switch_arg.bend │ │ ├── var_only.bend │ │ └── weekday.bend │ ├── hangs/ │ │ ├── bad_dup_interaction.bend │ │ └── recursive_with_unscoped.bend │ ├── import_system/ │ │ ├── import_ctr_syntax.bend │ │ ├── import_main.bend │ │ ├── import_main2.bend │ │ ├── import_main3.bend │ │ ├── import_type.bend │ │ ├── import_types.bend │ │ ├── imports.bend │ │ ├── imports_alias.bend │ │ ├── imports_alias_shadow.bend │ │ ├── imports_conflict.bend │ │ ├── imports_file_and_dir.bend │ │ ├── imports_file_and_dir_conflict.bend │ │ ├── imports_shadow.bend │ │ ├── imports_shadow2.bend │ │ └── lib/ │ │ ├── MyOption.bend │ │ ├── a/ │ │ │ └── b.bend │ │ ├── a.bend │ │ ├── bool_xor.bend │ │ ├── ctr_type.bend │ │ ├── defs.bend │ │ ├── file_and_dir/ │ │ │ ├── w.bend │ │ │ └── y.bend │ │ ├── file_and_dir.bend │ │ ├── folder/ │ │ │ ├── import_entry3.bend │ │ │ └── myFun.bend │ │ ├── import_entry.bend │ │ ├── import_entry2.bend │ │ ├── myFun.bend │ │ ├── nums.bend │ │ └── types.bend │ ├── io/ │ │ ├── eof.txt │ │ ├── load.bend │ │ ├── load.txt │ │ ├── load_fail.bend │ │ ├── read_line_eof.bend │ │ ├── store.bend │ │ ├── store.txt │ │ ├── store_fail.bend │ │ └── utf8.bend │ ├── linear_readback/ │ │ └── church_mul.bend │ ├── mutual_recursion/ │ │ ├── a_b_c.bend │ │ ├── len.bend │ │ ├── merged.bend │ │ ├── multiple.bend │ │ └── odd_even.bend │ ├── parse_file/ │ │ ├── bad_floating.bend │ │ ├── bend_missing_else.bend │ │ ├── era.bend │ │ ├── fold_missing_case.bend │ │ ├── fun_def.bend │ │ ├── fun_def_name.bend │ │ ├── if_missing_else.bend │ │ ├── imp_map.bend │ │ ├── imp_program.bend │ │ ├── match_missing_case.bend │ │ ├── multi_line_comment.bend │ │ ├── redefinition_builtin.bend │ │ ├── redefinition_ctr_with_fun.bend │ │ ├── redefinition_fun_imp.bend │ │ ├── redefinition_imp_fun.bend │ │ ├── redefinition_type_with_object.bend │ │ ├── redefinition_with_def_between.bend │ │ ├── redefinition_with_object_between.bend │ │ ├── redefinition_with_type_between.bend │ │ ├── repeated_adt_name.bend │ │ ├── repeated_datatype_name.bend │ │ ├── scape_chars.bend │ │ ├── strange_pattern.bend │ │ ├── tab.bend │ │ ├── tup_with_signed.bend │ │ ├── tuple_assign.bend │ │ ├── tuple_commas.bend │ │ └── tuple_need_parens.bend │ ├── prelude/ │ │ ├── applies_function_to_map.bend │ │ ├── get_values_from_map.bend │ │ ├── lists_to_map.bend │ │ ├── map_checked_test.bend │ │ ├── map_contains_test.bend │ │ └── set_node_when_empty.bend │ ├── readback_hvm/ │ │ ├── addition.bend │ │ ├── bad_net.bend │ │ ├── bad_net1.bend │ │ ├── bad_net3.bend │ │ ├── complicated_dup.bend │ │ ├── fst_snd.bend │ │ ├── id.bend │ │ ├── invalid_op2_op2.bend │ │ ├── match.bend │ │ ├── nested_let.bend │ │ ├── nested_tup.bend │ │ ├── number.bend │ │ ├── simple_tup.bend │ │ └── tup_add.bend │ ├── run_entrypoint/ │ │ └── foo.bend │ ├── run_file/ │ │ ├── 360_no_scope.bend │ │ ├── addition.bend │ │ ├── adt_match.bend │ │ ├── adt_match_wrong_tag.bend │ │ ├── adt_option_and.bend │ │ ├── adt_wrong_tag.bend │ │ ├── and.bend │ │ ├── basic_num_ops.bend │ │ ├── bend_fold.bend │ │ ├── bitonic_sort.bend │ │ ├── bitonic_sort_lam.bend │ │ ├── box.bend │ │ ├── branch_statements_assignment.bend │ │ ├── callcc.bend │ │ ├── chars.bend │ │ ├── chars_forall.bend │ │ ├── chars_lambda.bend │ │ ├── checked_scott_encoding.bend │ │ ├── comprehension.bend │ │ ├── def_bool_num.bend │ │ ├── def_num_bool.bend │ │ ├── def_tups.bend │ │ ├── do_block_mixed.bend │ │ ├── dup_global_lam.bend │ │ ├── empty.bend │ │ ├── encode_decode_utf8.bend │ │ ├── erased_side_effect.bend │ │ ├── escape_sequences.bend │ │ ├── eta.bend │ │ ├── example.bend │ │ ├── exp.bend │ │ ├── expand_main_combinator.bend │ │ ├── expand_main_list.bend │ │ ├── extracted_match_pred.bend │ │ ├── filter_bool_id.bend │ │ ├── floating_numbers.bend │ │ ├── fold_with_state.bend │ │ ├── guide_bend_7tree.bend │ │ ├── guide_bend_sequential.bend │ │ ├── guide_bend_sum_tree.bend │ │ ├── guide_bitonic_sort.bend │ │ ├── guide_circle_area.bend │ │ ├── guide_distance_4args.bend │ │ ├── guide_distance_obj.bend │ │ ├── guide_distance_tup.bend │ │ ├── guide_enumerate.bend │ │ ├── guide_if_age.bend │ │ ├── guide_is_even_num.bend │ │ ├── guide_is_even_str.bend │ │ ├── guide_list_ctrs.bend │ │ ├── guide_list_match.bend │ │ ├── guide_list_sugar.bend │ │ ├── guide_mul2_inline.bend │ │ ├── guide_mul2_rec.bend │ │ ├── guide_shader_dummy.bend │ │ ├── guide_sum.bend │ │ ├── hvm_def_cast.bend │ │ ├── hvm_def_two_defs.bend │ │ ├── id_underscore.bend │ │ ├── imp_empty_literals.bend │ │ ├── imp_use_statement.bend │ │ ├── kind_compiled_tree_sum.bend │ │ ├── lam_op2.bend │ │ ├── lam_op2_nested.bend │ │ ├── let_tup_readback.bend │ │ ├── linearize_match.bend │ │ ├── list_resugar.bend │ │ ├── list_reverse.bend │ │ ├── list_reverse_imp.bend │ │ ├── list_take.bend │ │ ├── list_to_tree.bend │ │ ├── mapper_syntax.bend │ │ ├── match.bend │ │ ├── match_builtins.bend │ │ ├── match_mult_linearization.bend │ │ ├── match_num_adt_tup_parser.bend │ │ ├── match_num_explicit_bind.bend │ │ ├── match_num_num_to_char.bend │ │ ├── match_num_succ_complex.bend │ │ ├── match_str.bend │ │ ├── match_sup.bend │ │ ├── match_vars.bend │ │ ├── math.bend │ │ ├── merge_sort.bend │ │ ├── mixed_syntax.bend │ │ ├── names_hyphen.bend │ │ ├── names_hyphen_toplevel.bend │ │ ├── nat_add.bend │ │ ├── nat_add_num.bend │ │ ├── nested_list_and_string.bend │ │ ├── nested_map_get.bend │ │ ├── nested_map_set.bend │ │ ├── nested_str.bend │ │ ├── num_cast.bend │ │ ├── num_match_missing_var.bend │ │ ├── num_pred.bend │ │ ├── open.bend │ │ ├── open_object.bend │ │ ├── open_too_many_ctrs.bend │ │ ├── open_undefined_type.bend │ │ ├── ops.bend │ │ ├── override_list_ctr.bend │ │ ├── override_str_ctr.bend │ │ ├── pred.bend │ │ ├── queue.bend │ │ ├── radix_sort_ctr.bend │ │ ├── readback_hvm1_main.bend │ │ ├── readback_list_other_ctr.bend │ │ ├── readback_num_ops.bend │ │ ├── recursive_bind.bend │ │ ├── recursive_combinator.bend │ │ ├── recursive_combinator_nested.bend │ │ ├── recursive_match_native.bend │ │ ├── ref_resolution.bend │ │ ├── repeated_name_truncation.bend │ │ ├── scopeless_discard.bend │ │ ├── str_concat.bend │ │ ├── str_inc.bend │ │ ├── str_inc_eta.bend │ │ ├── str_len.bend │ │ ├── strict_monad_fn.bend │ │ ├── sum_tree.bend │ │ ├── sup_app.bend │ │ ├── sup_reconstruction.bend │ │ ├── superposed_is_even.bend │ │ ├── tagged_lam.bend │ │ ├── tree_to_list.bend │ │ ├── tup_list_strings.bend │ │ ├── tup_reconstruction.bend │ │ ├── tuple_eta.bend │ │ ├── tuple_rots.bend │ │ ├── unaplied_str.bend │ │ ├── unbound_wrap.bend │ │ ├── unscoped_never_used.bend │ │ ├── unused_dup_var.bend │ │ ├── unused_main_var.bend │ │ ├── world.bend │ │ └── wrong_string.bend │ ├── run_lazy/ │ │ ├── addition.bend │ │ ├── adt_match.bend │ │ ├── adt_match_wrong_tag.bend │ │ ├── adt_option_and.bend │ │ ├── adt_wrong_tag.bend │ │ ├── and.bend │ │ ├── bitonic_sort.bend │ │ ├── bitonic_sort_lam.bend │ │ ├── box.bend │ │ ├── box2.bend │ │ ├── callcc.bend │ │ ├── chars.bend │ │ ├── def_tups.bend │ │ ├── dup_global_lam.bend │ │ ├── eta.bend │ │ ├── example.bend │ │ ├── exp.bend │ │ ├── extracted_match_pred.bend │ │ ├── field_vectorization.bend │ │ ├── lam_op2.bend │ │ ├── lam_op2_nested.bend │ │ ├── let_tup_readback.bend │ │ ├── linearize_match.bend │ │ ├── list_resugar.bend │ │ ├── list_reverse.bend │ │ ├── list_take.bend │ │ ├── list_to_tree.bend │ │ ├── match.bend │ │ ├── match_builtins.bend │ │ ├── match_mult_linearization.bend │ │ ├── match_num_explicit_bind.bend │ │ ├── merge_sort.bend │ │ ├── nested_list_and_string.bend │ │ ├── nested_str.bend │ │ ├── num_pred.bend │ │ ├── queue.bend │ │ ├── radix_sort_ctr.bend │ │ ├── recursive_match_native.bend │ │ ├── scopeless_discard.bend │ │ ├── str_concat.bend │ │ ├── str_inc.bend │ │ ├── str_inc_eta.bend │ │ ├── str_len.bend │ │ ├── sum_tree.bend │ │ ├── sup_app.bend │ │ ├── sup_reconstruction.bend │ │ ├── superposed_is_even.bend │ │ ├── tagged_lam.bend │ │ ├── tup_reconstruction.bend │ │ ├── tuple_rots.bend │ │ ├── unaplied_str.bend │ │ ├── unused_dup_var.bend │ │ ├── world.bend │ │ └── wrong_string.bend │ ├── scott_triggers_unused/ │ │ └── test.bend │ └── simplify_matches/ │ ├── adt_tup_era.bend │ ├── already_flat.bend │ ├── bits_dec.bend │ ├── complex_with_case.bend │ ├── double_unwrap_box.bend │ ├── double_unwrap_maybe.bend │ ├── flatten_with_terminal.bend │ ├── irrefutable_case.bend │ ├── linearize_match_all.bend │ ├── match_str.bend │ ├── nested.bend │ ├── nested2.bend │ ├── nested_0ary.bend │ ├── redundant_with_era.bend │ └── wrong_fn_arity.bend ├── golden_tests.rs └── snapshots/ ├── check_file__fail_type_bad_rec_fn_adt.bend.snap ├── check_file__non_exaustive_limit.bend.snap ├── check_file__type_err_match_arm.bend.snap ├── cli__compile_all.bend.snap ├── cli__compile_inline.bend.snap ├── cli__compile_no_opts.bend.snap ├── cli__compile_pre_reduce.bend.snap ├── cli__compile_strict_loop.bend.snap ├── cli__compile_wrong_opt.bend.snap ├── cli__custom_hvm_bin.bend.snap ├── cli__debug_list_map.bend.snap ├── cli__debug_u60_to_nat.bend.snap ├── cli__desugar_bool_scott.bend.snap ├── cli__desugar_float_combinators.bend.snap ├── cli__desugar_linearize_matches.bend.snap ├── cli__desugar_linearize_matches_alt.bend.snap ├── cli__desugar_merge.bend.snap ├── cli__desugar_pretty.bend.snap ├── cli__desugar_prune.bend.snap ├── cli__gen_hvm_no_eta_by_default.bend.snap ├── cli__input_file_not_found.bend.snap ├── cli__net_size_too_large.bend.snap ├── cli__no_check_net_size.bend.snap ├── cli__run_add.bend.snap ├── cli__run_pretty.bend.snap ├── cli__tuple_readback.bend.snap ├── cli__warn_and_err.bend.snap ├── compile_entrypoint__foo.bend.snap ├── compile_file__360_no_scope.bend.snap ├── compile_file__add_args.bend.snap ├── compile_file__addition.bend.snap ├── compile_file__addition_const.bend.snap ├── compile_file__ask_outside_do.bend.snap ├── compile_file__church_one.bend.snap ├── compile_file__church_zero.bend.snap ├── compile_file__complicated_dup.bend.snap ├── compile_file__crlf.bend.snap ├── compile_file__cyclic_global_lam.bend.snap ├── compile_file__def_pat_unscoped.bend.snap ├── compile_file__dup_apply.bend.snap ├── compile_file__dup_global_lam.bend.snap ├── compile_file__elif.bend.snap ├── compile_file__elif_fun.bend.snap ├── compile_file__elif_no_else.bend.snap ├── compile_file__erased_dup.bend.snap ├── compile_file__error_data_def_name.bend.snap ├── compile_file__error_messages.bend.snap ├── compile_file__f24_oper.bend.snap ├── compile_file__fst_snd.bend.snap ├── compile_file__global_lam.bend.snap ├── compile_file__i24_oper.bend.snap ├── compile_file__id.bend.snap ├── compile_file__infer_dup.bend.snap ├── compile_file__inlining.bend.snap ├── compile_file__just_a_name.bend.snap ├── compile_file__just_data.bend.snap ├── compile_file__just_paren.bend.snap ├── compile_file__just_rule_paren.bend.snap ├── compile_file__let_substitution.bend.snap ├── compile_file__let_tup.bend.snap ├── compile_file__lets.bend.snap ├── compile_file__long_name.bend.snap ├── compile_file__match.bend.snap ├── compile_file__mismatched_ask_statements.bend.snap ├── compile_file__missing_adt_eq.bend.snap ├── compile_file__missing_ctrs.bend.snap ├── compile_file__missing_pat.bend.snap ├── compile_file__names_starting_with_keywords.bend.snap ├── compile_file__nested_ctr_wrong_arity.bend.snap ├── compile_file__nested_let.bend.snap ├── compile_file__number_too_large.bend.snap ├── compile_file__nums.bend.snap ├── compile_file__op2.bend.snap ├── compile_file__redex_order.bend.snap ├── compile_file__redex_order_recursive.bend.snap ├── compile_file__ref_to_main.bend.snap ├── compile_file__ref_to_ref.bend.snap ├── compile_file__repeated_bind_rule.bend.snap ├── compile_file__simple_tup.bend.snap ├── compile_file__switch_all_patterns.bend.snap ├── compile_file__switch_in_switch_arg.bend.snap ├── compile_file__switch_incomplete.bend.snap ├── compile_file__switch_unscoped_lambda.bend.snap ├── compile_file__top_level_name_slashslash.bend.snap ├── compile_file__tup.bend.snap ├── compile_file__tup_add.bend.snap ├── compile_file__unbound_unscoped_var.bend.snap ├── compile_file__unbound_var.bend.snap ├── compile_file__unbound_var_scope.bend.snap ├── compile_file__unbound_with_tup_pattern.bend.snap ├── compile_file__underscore.bend.snap ├── compile_file__unexpected_top_char.bend.snap ├── compile_file__unscoped_dup_use.bend.snap ├── compile_file__unscoped_supercombinator.bend.snap ├── compile_file__unused_let.bend.snap ├── compile_file__unused_unscoped_bind.bend.snap ├── compile_file__variable_name_double_underscore.bend.snap ├── compile_file__vicious_circles.bend.snap ├── compile_file__warn_and_err.bend.snap ├── compile_file__with_clause_parse_err.bend.snap ├── compile_file__wrong_ctr_arity.bend.snap ├── compile_file__wrong_ctr_var_arity.bend.snap ├── compile_file__wrong_nums.bend.snap ├── compile_file__wrong_unicode_escape.bend.snap ├── compile_file_o_all__addition.bend.snap ├── compile_file_o_all__addition_var_fst.bend.snap ├── compile_file_o_all__adt_option_and.bend.snap ├── compile_file_o_all__adt_string.bend.snap ├── compile_file_o_all__and.bend.snap ├── compile_file_o_all__bad_parens_making_erased_let.bend.snap ├── compile_file_o_all__bool.bend.snap ├── compile_file_o_all__cyclic_dup.bend.snap ├── compile_file_o_all__double_main.bend.snap ├── compile_file_o_all__eta_chain.bend.snap ├── compile_file_o_all__ex0.bend.snap ├── compile_file_o_all__ex2.bend.snap ├── compile_file_o_all__example.bend.snap ├── compile_file_o_all__exp.bend.snap ├── compile_file_o_all__expr.bend.snap ├── compile_file_o_all__extracted_match_pred.bend.snap ├── compile_file_o_all__fst.bend.snap ├── compile_file_o_all__fst_fst.bend.snap ├── compile_file_o_all__hvm1_main.bend.snap ├── compile_file_o_all__inline_app.bend.snap ├── compile_file_o_all__inlining.bend.snap ├── compile_file_o_all__linearize_match.bend.snap ├── compile_file_o_all__list_merge_sort.bend.snap ├── compile_file_o_all__list_reverse.bend.snap ├── compile_file_o_all__match_adt_non_exhaustive.bend.snap ├── compile_file_o_all__match_dup_and_reconstruction.bend.snap ├── compile_file_o_all__match_mult_linearization.bend.snap ├── compile_file_o_all__match_num_explicit_bind.bend.snap ├── compile_file_o_all__match_tup.bend.snap ├── compile_file_o_all__merge_definitions.bend.snap ├── compile_file_o_all__non_exhaustive_and.bend.snap ├── compile_file_o_all__non_exhaustive_different_types.bend.snap ├── compile_file_o_all__non_exhaustive_pattern.bend.snap ├── compile_file_o_all__non_exhaustive_tree.bend.snap ├── compile_file_o_all__num_pattern_with_var.bend.snap ├── compile_file_o_all__recursive_combinator_inactive.bend.snap ├── compile_file_o_all__repeated_name_trucation.bend.snap ├── compile_file_o_all__scrutinee_reconstruction.bend.snap ├── compile_file_o_all__self_ref.bend.snap ├── compile_file_o_all__snd.bend.snap ├── compile_file_o_all__spacing.bend.snap ├── compile_file_o_all__spacing2.bend.snap ├── compile_file_o_all__str.bend.snap ├── compile_file_o_all__sum_predicates.bend.snap ├── compile_file_o_all__tagged_dup.bend.snap ├── compile_file_o_all__tagged_lam.bend.snap ├── compile_file_o_all__tagged_sup.bend.snap ├── compile_file_o_all__unapplied_eta.bend.snap ├── compile_file_o_all__unscoped_eta.bend.snap ├── compile_file_o_all__var_shadows_ref.bend.snap ├── compile_file_o_all__weekday.bend.snap ├── compile_file_o_no_all__bitonic_sort.bend.snap ├── compile_file_o_no_all__list_reverse.bend.snap ├── compile_file_o_no_all__redex_order.bend.snap ├── compile_file_o_no_all__sum_tree.bend.snap ├── compile_long__huge_tree.bend.snap ├── compile_long__long_str_file.bend.snap ├── desugar_file__ask_branch.bend.snap ├── desugar_file__bind_syntax.bend.snap ├── desugar_file__combinators.bend.snap ├── desugar_file__deref_loop.bend.snap ├── desugar_file__dup_linearization.bend.snap ├── desugar_file__local_def_shadow.bend.snap ├── desugar_file__main_aux.bend.snap ├── desugar_file__mapper_syntax.bend.snap ├── desugar_file__switch_with_use.bend.snap ├── desugar_file__tree_syntax.bend.snap ├── desugar_file__use_id.bend.snap ├── desugar_file__use_shadow.bend.snap ├── desugar_file__used_once_names.bend.snap ├── encode_pattern_match__adt_tup_era.bend.snap ├── encode_pattern_match__and3.bend.snap ├── encode_pattern_match__bool.bend.snap ├── encode_pattern_match__bool_tup.bend.snap ├── encode_pattern_match__box.bend.snap ├── encode_pattern_match__common.bend.snap ├── encode_pattern_match__concat.bend.snap ├── encode_pattern_match__concat_def.bend.snap ├── encode_pattern_match__def_tups.bend.snap ├── encode_pattern_match__definition_merge.bend.snap ├── encode_pattern_match__expr.bend.snap ├── encode_pattern_match__flatten_era_pat.bend.snap ├── encode_pattern_match__full_map.bend.snap ├── encode_pattern_match__is_some_some.bend.snap ├── encode_pattern_match__list_merge_sort.bend.snap ├── encode_pattern_match__list_str_encoding_undeclared_fn.bend.snap ├── encode_pattern_match__list_str_encoding_undeclared_map.bend.snap ├── encode_pattern_match__match_adt_unscoped_in_arm.bend.snap ├── encode_pattern_match__match_adt_unscoped_lambda.bend.snap ├── encode_pattern_match__match_adt_unscoped_var.bend.snap ├── encode_pattern_match__match_auto_linearization.bend.snap ├── encode_pattern_match__match_bind.bend.snap ├── encode_pattern_match__match_num_adt_tup_parser.bend.snap ├── encode_pattern_match__match_num_pred.bend.snap ├── encode_pattern_match__match_syntax.bend.snap ├── encode_pattern_match__merge_recursive.bend.snap ├── encode_pattern_match__no_patterns.bend.snap ├── encode_pattern_match__non_matching_fst_arg.bend.snap ├── encode_pattern_match__ntup_sum.bend.snap ├── encode_pattern_match__pattern_match_encoding.bend.snap ├── encode_pattern_match__switch_in_switch_arg.bend.snap ├── encode_pattern_match__var_only.bend.snap ├── encode_pattern_match__weekday.bend.snap ├── examples__bitonic_sort.bend.snap ├── examples__bubble_sort.bend.snap ├── examples__callcc.bend.snap ├── examples__example_fun.bend.snap ├── examples__fib.bend.snap ├── examples__fusing_add.bend.snap ├── examples__fusing_not.bend.snap ├── examples__gen_tree.bend.snap ├── examples__hello_world.bend.snap ├── examples__insertion_sort.bend.snap ├── examples__list.bend.snap ├── examples__parallel_and.bend.snap ├── examples__parallel_hello_world.bend.snap ├── examples__parallel_sum.bend.snap ├── examples__queue.bend.snap ├── examples__quick_sort.bend.snap ├── examples__radix_sort.bend.snap ├── import_system__import_ctr_syntax.bend.snap ├── import_system__import_main.bend.snap ├── import_system__import_main2.bend.snap ├── import_system__import_main3.bend.snap ├── import_system__import_type.bend.snap ├── import_system__import_types.bend.snap ├── import_system__imports.bend.snap ├── import_system__imports_alias.bend.snap ├── import_system__imports_alias_shadow.bend.snap ├── import_system__imports_conflict.bend.snap ├── import_system__imports_file_and_dir.bend.snap ├── import_system__imports_file_and_dir_conflict.bend.snap ├── import_system__imports_shadow.bend.snap ├── import_system__imports_shadow2.bend.snap ├── io__load.bend.snap ├── io__load_fail.bend.snap ├── io__read_line_eof.bend.snap ├── io__store.bend.snap ├── io__store_fail.bend.snap ├── io__utf8.bend.snap ├── linear_readback__church_mul.bend.snap ├── mutual_recursion__a_b_c.bend.snap ├── mutual_recursion__len.bend.snap ├── mutual_recursion__merged.bend.snap ├── mutual_recursion__multiple.bend.snap ├── mutual_recursion__odd_even.bend.snap ├── parse_file__bad_floating.bend.snap ├── parse_file__bend_missing_else.bend.snap ├── parse_file__era.bend.snap ├── parse_file__fold_missing_case.bend.snap ├── parse_file__fun_def.bend.snap ├── parse_file__fun_def_name.bend.snap ├── parse_file__if_missing_else.bend.snap ├── parse_file__imp_map.bend.snap ├── parse_file__imp_program.bend.snap ├── parse_file__match_missing_case.bend.snap ├── parse_file__multi_line_comment.bend.snap ├── parse_file__redefinition_builtin.bend.snap ├── parse_file__redefinition_ctr_with_fun.bend.snap ├── parse_file__redefinition_fun_imp.bend.snap ├── parse_file__redefinition_imp_fun.bend.snap ├── parse_file__redefinition_type_with_object.bend.snap ├── parse_file__redefinition_with_def_between.bend.snap ├── parse_file__redefinition_with_object_between.bend.snap ├── parse_file__redefinition_with_type_between.bend.snap ├── parse_file__repeated_adt_name.bend.snap ├── parse_file__repeated_datatype_name.bend.snap ├── parse_file__scape_chars.bend.snap ├── parse_file__strange_pattern.bend.snap ├── parse_file__tab.bend.snap ├── parse_file__tup_with_signed.bend.snap ├── parse_file__tuple_assign.bend.snap ├── parse_file__tuple_commas.bend.snap ├── parse_file__tuple_need_parens.bend.snap ├── prelude__applies_function_to_map.bend.snap ├── prelude__get_values_from_map.bend.snap ├── prelude__lists_to_map.bend.snap ├── prelude__map_checked_test.bend.snap ├── prelude__map_contains_test.bend.snap ├── prelude__set_node_when_empty.bend.snap ├── readback_hvm__addition.bend.snap ├── readback_hvm__bad_net.bend.snap ├── readback_hvm__bad_net1.bend.snap ├── readback_hvm__bad_net3.bend.snap ├── readback_hvm__complicated_dup.bend.snap ├── readback_hvm__fst_snd.bend.snap ├── readback_hvm__id.bend.snap ├── readback_hvm__invalid_op2_op2.bend.snap ├── readback_hvm__match.bend.snap ├── readback_hvm__nested_let.bend.snap ├── readback_hvm__nested_tup.bend.snap ├── readback_hvm__number.bend.snap ├── readback_hvm__simple_tup.bend.snap ├── readback_hvm__tup_add.bend.snap ├── run_file__360_no_scope.bend.snap ├── run_file__addition.bend.snap ├── run_file__adt_match.bend.snap ├── run_file__adt_match_wrong_tag.bend.snap ├── run_file__adt_option_and.bend.snap ├── run_file__adt_wrong_tag.bend.snap ├── run_file__and.bend.snap ├── run_file__basic_num_ops.bend.snap ├── run_file__bend_fold.bend.snap ├── run_file__bitonic_sort.bend.snap ├── run_file__bitonic_sort_lam.bend.snap ├── run_file__box.bend.snap ├── run_file__branch_statements_assignment.bend.snap ├── run_file__callcc.bend.snap ├── run_file__chars.bend.snap ├── run_file__chars_forall.bend.snap ├── run_file__chars_lambda.bend.snap ├── run_file__checked_scott_encoding.bend.snap ├── run_file__comprehension.bend.snap ├── run_file__def_bool_num.bend.snap ├── run_file__def_num_bool.bend.snap ├── run_file__def_tups.bend.snap ├── run_file__do_block_mixed.bend.snap ├── run_file__dup_global_lam.bend.snap ├── run_file__empty.bend.snap ├── run_file__encode_decode_utf8.bend.snap ├── run_file__erased_side_effect.bend.snap ├── run_file__escape_sequences.bend.snap ├── run_file__eta.bend.snap ├── run_file__example.bend.snap ├── run_file__exp.bend.snap ├── run_file__expand_main_combinator.bend.snap ├── run_file__expand_main_list.bend.snap ├── run_file__extracted_match_pred.bend.snap ├── run_file__filter_bool_id.bend.snap ├── run_file__floating_numbers.bend.snap ├── run_file__fold_with_state.bend.snap ├── run_file__guide_bend_7tree.bend.snap ├── run_file__guide_bend_sequential.bend.snap ├── run_file__guide_bend_sum_tree.bend.snap ├── run_file__guide_bitonic_sort.bend.snap ├── run_file__guide_circle_area.bend.snap ├── run_file__guide_distance_4args.bend.snap ├── run_file__guide_distance_obj.bend.snap ├── run_file__guide_distance_tup.bend.snap ├── run_file__guide_enumerate.bend.snap ├── run_file__guide_if_age.bend.snap ├── run_file__guide_is_even_num.bend.snap ├── run_file__guide_is_even_str.bend.snap ├── run_file__guide_list_ctrs.bend.snap ├── run_file__guide_list_match.bend.snap ├── run_file__guide_list_sugar.bend.snap ├── run_file__guide_mul2_inline.bend.snap ├── run_file__guide_mul2_rec.bend.snap ├── run_file__guide_shader_dummy.bend.snap ├── run_file__guide_sum.bend.snap ├── run_file__hvm_def_cast.bend.snap ├── run_file__hvm_def_two_defs.bend.snap ├── run_file__id_underscore.bend.snap ├── run_file__imp_empty_literals.bend.snap ├── run_file__imp_use_statement.bend.snap ├── run_file__kind_compiled_tree_sum.bend.snap ├── run_file__lam_op2.bend.snap ├── run_file__lam_op2_nested.bend.snap ├── run_file__let_tup_readback.bend.snap ├── run_file__linearize_match.bend.snap ├── run_file__list_resugar.bend.snap ├── run_file__list_reverse.bend.snap ├── run_file__list_reverse_imp.bend.snap ├── run_file__list_take.bend.snap ├── run_file__list_to_tree.bend.snap ├── run_file__mapper_syntax.bend.snap ├── run_file__match.bend.snap ├── run_file__match_builtins.bend.snap ├── run_file__match_mult_linearization.bend.snap ├── run_file__match_num_adt_tup_parser.bend.snap ├── run_file__match_num_explicit_bind.bend.snap ├── run_file__match_num_num_to_char.bend.snap ├── run_file__match_num_succ_complex.bend.snap ├── run_file__match_str.bend.snap ├── run_file__match_sup.bend.snap ├── run_file__match_vars.bend.snap ├── run_file__math.bend.snap ├── run_file__merge_sort.bend.snap ├── run_file__mixed_syntax.bend.snap ├── run_file__names_hyphen.bend.snap ├── run_file__names_hyphen_toplevel.bend.snap ├── run_file__nat_add.bend.snap ├── run_file__nat_add_num.bend.snap ├── run_file__nested_list_and_string.bend.snap ├── run_file__nested_map_get.bend.snap ├── run_file__nested_map_set.bend.snap ├── run_file__nested_str.bend.snap ├── run_file__num_cast.bend.snap ├── run_file__num_match_missing_var.bend.snap ├── run_file__num_pred.bend.snap ├── run_file__open.bend.snap ├── run_file__open_object.bend.snap ├── run_file__open_too_many_ctrs.bend.snap ├── run_file__open_undefined_type.bend.snap ├── run_file__ops.bend.snap ├── run_file__override_list_ctr.bend.snap ├── run_file__override_str_ctr.bend.snap ├── run_file__pred.bend.snap ├── run_file__queue.bend.snap ├── run_file__radix_sort_ctr.bend.snap ├── run_file__readback_hvm1_main.bend.snap ├── run_file__readback_list_other_ctr.bend.snap ├── run_file__readback_num_ops.bend.snap ├── run_file__recursive_bind.bend.snap ├── run_file__recursive_combinator.bend.snap ├── run_file__recursive_combinator_nested.bend.snap ├── run_file__recursive_match_native.bend.snap ├── run_file__ref_resolution.bend.snap ├── run_file__repeated_name_truncation.bend.snap ├── run_file__scopeless_discard.bend.snap ├── run_file__str_concat.bend.snap ├── run_file__str_inc.bend.snap ├── run_file__str_inc_eta.bend.snap ├── run_file__str_len.bend.snap ├── run_file__strict_monad_fn.bend.snap ├── run_file__sum_tree.bend.snap ├── run_file__sup_app.bend.snap ├── run_file__sup_reconstruction.bend.snap ├── run_file__superposed_is_even.bend.snap ├── run_file__tagged_lam.bend.snap ├── run_file__tree_to_list.bend.snap ├── run_file__tup_list_strings.bend.snap ├── run_file__tup_reconstruction.bend.snap ├── run_file__tuple_eta.bend.snap ├── run_file__tuple_rots.bend.snap ├── run_file__unaplied_str.bend.snap ├── run_file__unbound_wrap.bend.snap ├── run_file__unscoped_never_used.bend.snap ├── run_file__unused_dup_var.bend.snap ├── run_file__unused_main_var.bend.snap ├── run_file__world.bend.snap ├── run_file__wrong_string.bend.snap ├── scott_triggers_unused__test.bend.snap ├── simplify_matches__adt_tup_era.bend.snap ├── simplify_matches__already_flat.bend.snap ├── simplify_matches__bits_dec.bend.snap ├── simplify_matches__complex_with_case.bend.snap ├── simplify_matches__double_unwrap_box.bend.snap ├── simplify_matches__double_unwrap_maybe.bend.snap ├── simplify_matches__flatten_with_terminal.bend.snap ├── simplify_matches__irrefutable_case.bend.snap ├── simplify_matches__linearize_match_all.bend.snap ├── simplify_matches__match_str.bend.snap ├── simplify_matches__nested.bend.snap ├── simplify_matches__nested2.bend.snap ├── simplify_matches__nested_0ary.bend.snap ├── simplify_matches__redundant_with_era.bend.snap └── simplify_matches__wrong_fn_arity.bend.snap