gitextract_jkpspzh6/ ├── .gitignore ├── INSTALL.sh ├── Makefile ├── README.md ├── UNLICENSE └── code/ ├── Makefile ├── async/ │ ├── #build_other_searches.sh# │ ├── #main.topscript# │ ├── better_echo.ml │ ├── build_echo.sh │ ├── build_other_searches.sh │ ├── echo.ml │ ├── main-35.rawscript │ ├── main-38.rawscript │ ├── main-44.rawscript │ ├── main-45.rawscript │ ├── main-46.rawscript │ ├── main-47.rawscript │ ├── main.topscript │ ├── native_code_log_delays.ml │ ├── pipe_write_break.rawscript │ ├── pipe_write_break.rawtopscript │ ├── run_echo.rawsh │ ├── run_native_code_log_delays.rawsh │ ├── run_native_code_log_delays_orig.sh │ ├── run_search.rawsh │ ├── run_search_orig.sh │ ├── run_search_with_configurable_server.rawsh │ ├── run_search_with_configurable_server_orig.errsh │ ├── run_search_with_error_handling.rawsh │ ├── run_search_with_error_handling_orig.sh │ ├── run_search_with_timeout_no_leak.rawsh │ ├── run_search_with_timeout_no_leak_orig.sh │ ├── run_thread.sh │ ├── search.ml │ ├── search_out_of_order.ml │ ├── search_with_configurable_server.ml │ ├── search_with_error_handling.ml │ ├── search_with_error_handling_deprecated.ml │ ├── search_with_timeout.ml │ ├── search_with_timeout_choice.ml │ ├── search_with_timeout_no_leak.ml │ ├── search_with_timeout_no_leak_simple.ml │ ├── search_with_timeout_simple.ml │ ├── test.txt │ ├── thread_exp_async_busy_loop.ml │ ├── thread_exp_async_busy_loop_in_thread.ml │ ├── thread_exp_async_noalloc_busy_loop.ml │ ├── thread_exp_async_noalloc_busy_loop_in_thread.ml │ ├── thread_exp_async_only.ml │ ├── thread_exp_common.ml │ ├── thread_experiments.ml │ └── timeout_search.ml ├── back-end/ │ ├── alternate_list.ml │ ├── asm_from_compare_mono.sh │ ├── cmp.S │ ├── compare_mono.ml │ ├── compare_mono.s │ ├── compare_poly.ml │ ├── compare_poly_asm.S │ ├── gdb_alternate0.rawsh │ ├── gdb_alternate1.rawsh │ ├── gdb_alternate2.rawsh │ ├── gdb_alternate3.rawsh │ ├── instr_for_pattern_monomorphic_small.sh │ ├── lambda_for_pattern_monomorphic_large.sh │ ├── lambda_for_pattern_monomorphic_small.sh │ ├── lambda_for_pattern_polymorphic.sh │ ├── opam_switch.rawsh │ ├── pattern_monomorphic_large.ml │ ├── pattern_monomorphic_small.ml │ ├── pattern_polymorphic.ml │ ├── perf_record.rawsh │ └── perf_report.rawsh ├── back-end-bench/ │ ├── bench_patterns.ml │ ├── bench_poly_and_mono.ml │ ├── run_alternate_list.sh │ ├── run_bench_patterns.sh │ └── run_bench_poly_and_mono.sh ├── back-end-embed/ │ ├── build_embed.sh │ ├── build_embed_binary.rawsh │ ├── build_embed_c.sh │ ├── build_embed_native.rawsh │ ├── embed_me1.ml │ ├── embed_me2.ml │ ├── embed_out.c │ ├── hello.ml │ ├── link_custom.rawsh │ ├── link_dllib.rawsh │ ├── main.c │ ├── run_debug_hello.sh │ ├── xbuild_embed_binary.sh │ └── xbuild_embed_native.sh ├── classes/ │ ├── Iterator.java │ ├── binary.topscript │ ├── binary_larger.ml │ ├── binary_module.ml │ ├── build_doc.sh │ ├── citerator.cpp │ ├── class_types_stack.ml │ ├── doc.ml │ ├── initializer.topscript │ ├── istack.topscript │ ├── iter.topscript │ └── stack.topscript ├── classes-async/ │ ├── build_shapes.sh │ ├── multiple_inheritance.ml │ ├── multiple_inheritance_wrong.ml │ ├── shapes.ml │ └── verbose_shapes.ml ├── command-line-parsing/ │ ├── _tags │ ├── basic.topscript │ ├── basic_md5.ml │ ├── basic_md5_as_filename.ml │ ├── basic_md5_sequence.ml │ ├── basic_md5_succinct.ml │ ├── basic_md5_with_custom_arg.ml │ ├── basic_md5_with_default_file.ml │ ├── basic_md5_with_flags.ml │ ├── basic_md5_with_opt_flags.ml │ ├── basic_md5_with_optional_file.ml │ ├── basic_md5_with_optional_file_broken.ml │ ├── build_and_run_cal_add_interactive.rawsh │ ├── build_basic_md5.sh │ ├── build_basic_md5_as_filename.sh │ ├── build_basic_md5_sequence.sh │ ├── build_basic_md5_with_custom_arg.sh │ ├── build_basic_md5_with_default_file.sh │ ├── build_basic_md5_with_flags.sh │ ├── build_basic_md5_with_opt_flags.sh │ ├── build_basic_md5_with_optional_file.sh │ ├── build_basic_md5_with_optional_file_broken.errsh │ ├── build_cal_add_days.sh │ ├── build_cal_add_sub_days.sh │ ├── build_cal_append.sh │ ├── build_cal_append_broken.errsh │ ├── cal.cmd │ ├── cal_add_days.ml │ ├── cal_add_interactive.ml │ ├── cal_add_labels.ml │ ├── cal_add_sub_days.ml │ ├── cal_append.ml │ ├── cal_append_broken.ml │ ├── cal_completion.rawsh │ ├── command_types.topscript │ ├── get_basic_md5_help.errsh │ ├── get_basic_md5_version.sh │ ├── group.topscript │ ├── md5_completion.sh │ ├── opam.rawsh │ ├── run_basic_and_default_md5.sh │ ├── run_basic_md5.sh │ ├── run_basic_md5_as_filename.errsh │ ├── run_basic_md5_flags_help.sh │ ├── run_basic_md5_with_custom_arg.errsh │ ├── run_cal_add_sub_days.sh │ ├── single_anon_filename.topscript │ └── step.topscript ├── corebuild ├── ctypes/ │ ├── ctypes.mli │ └── ctypes_impl.ml ├── error-handling/ │ ├── blow_up.ml │ ├── build_blow_up.errsh │ ├── build_blow_up_notrace.errsh │ ├── exn_cost.ml │ ├── main.topscript │ ├── result.ml │ ├── result.mli │ ├── run_exn_cost.sh │ ├── run_exn_cost_notrace.sh │ ├── sexpr.scm │ └── try_with.syntax ├── exec_script.sh ├── exec_topscript.sh ├── fcm/ │ ├── build_query_handler.sh │ ├── build_query_handler_loader.sh │ ├── fcm.syntax │ ├── loader_cli1.rawsh │ ├── loader_cli2.rawsh │ ├── loader_cli3.rawsh │ ├── loader_cli4.rawsh │ ├── main.topscript │ ├── pack.syntax │ ├── query-syntax.scm │ ├── query_example.rawscript │ ├── query_handler.ml │ ├── query_handler.topscript │ ├── query_handler_core.ml │ ├── query_handler_loader.ml │ └── unpack.syntax ├── ffi/ │ ├── build_datetime.sh │ ├── build_hello.sh │ ├── build_qsort.sh │ ├── datetime.ml │ ├── hello.ml │ ├── infer_ncurses.sh │ ├── input.txt │ ├── install.rawsh │ ├── ncurses.h │ ├── ncurses.inferred.mli │ ├── ncurses.ml │ ├── ncurses.mli │ ├── posix.topscript │ ├── posix_headers.h │ ├── qsort.h │ ├── qsort.ml │ ├── qsort.mli │ ├── qsort.topscript │ ├── qsort_typedef.h │ ├── return_c_frag.c │ ├── return_c_frag.h │ ├── return_c_uncurried.c │ ├── return_frag.ml │ └── timeval_headers.h ├── files-modules-and-programs/ │ ├── abstract_username.ml │ ├── build_session_info.errsh │ ├── common.ml │ ├── confusing_username_and_host.ml │ ├── ext_list.ml │ ├── ext_list.mli │ ├── freq.ml │ ├── intro.topscript │ ├── main.topscript │ ├── module.syntax │ ├── session_info.ml │ └── val.syntax ├── files-modules-and-programs-freq/ │ ├── freq.ml │ ├── simple_build.sh │ └── simple_build_fail.errsh ├── files-modules-and-programs-freq-cyclic1/ │ ├── build.errsh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── files-modules-and-programs-freq-cyclic2/ │ ├── build.errsh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── files-modules-and-programs-freq-fast/ │ ├── build.sh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── files-modules-and-programs-freq-median/ │ ├── build.sh │ ├── build_use_median.sh │ ├── counter.ml │ ├── counter.mli │ ├── freq.ml │ ├── use_median_1.ml │ └── use_median_2.ml ├── files-modules-and-programs-freq-obuild/ │ ├── build.sh │ └── test.sh ├── files-modules-and-programs-freq-with-counter/ │ ├── build.sh │ ├── counter.ml │ ├── freq.ml │ └── infer_mli.sh ├── files-modules-and-programs-freq-with-missing-def/ │ ├── build.errsh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── files-modules-and-programs-freq-with-sig/ │ ├── build.sh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── files-modules-and-programs-freq-with-sig-abstract/ │ ├── build.errsh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── files-modules-and-programs-freq-with-sig-abstract-fixed/ │ ├── build.sh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── files-modules-and-programs-freq-with-sig-mismatch/ │ ├── build.errsh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── files-modules-and-programs-freq-with-type-mismatch/ │ ├── build.errsh │ ├── counter.ml │ ├── counter.mli │ └── freq.ml ├── front-end/ │ ├── alice.ml │ ├── alice.mli │ ├── alice_combined.ml │ ├── broken_module.ml │ ├── broken_poly.ml │ ├── broken_poly_with_annot.ml │ ├── build_broken_module.errsh │ ├── build_broken_poly.errsh │ ├── build_broken_poly_with_annot.errsh │ ├── build_follow_on_function.errsh │ ├── build_non_principal.sh │ ├── build_ocamldoc.rawsh │ ├── build_principal.sh │ ├── build_type_conv_with_camlp4.rawsh │ ├── build_type_conv_without_camlp4.errsh │ ├── camlp4_dump.cmd │ ├── camlp4_toplevel.topscript │ ├── comparelib_test.ml │ ├── comparelib_test.mli │ ├── conflicting_interfaces.errsh │ ├── doc.ml │ ├── fixed_module.ml │ ├── follow_on_function.ml │ ├── follow_on_function_fixed.ml │ ├── html/ │ │ ├── Doc.html │ │ ├── index.html │ │ ├── index_attributes.html │ │ ├── index_class_types.html │ │ ├── index_classes.html │ │ ├── index_exceptions.html │ │ ├── index_methods.html │ │ ├── index_module_types.html │ │ ├── index_modules.html │ │ ├── index_types.html │ │ ├── index_values.html │ │ ├── style.css │ │ └── type_Doc.html │ ├── inconsistent_compilation_units.rawsh │ ├── indent_follow_on_function.sh │ ├── indent_follow_on_function_fixed.sh │ ├── infer_typedef.sh │ ├── install_ocp_index.rawsh │ ├── let_notunit.ml │ ├── let_unit.syntax │ ├── man/ │ │ └── man3/ │ │ ├── Doc.3o │ │ ├── My_exception.3o │ │ ├── Rain.3o │ │ ├── Sun.3o │ │ ├── weather.3o │ │ └── what_is_the_weather_in.3o │ ├── non_principal.ml │ ├── parsetree_typedef.sh │ ├── pipeline.ascii │ ├── principal.ml │ ├── process_comparelib_interface.sh │ ├── process_comparelib_test.sh │ ├── short_paths_1.rawsh │ ├── short_paths_2.rawsh │ ├── short_paths_3.rawsh │ ├── test.ml │ ├── test.mli │ ├── type_conv_example.ml │ ├── typedef.ml │ ├── typedef_objinfo.sh │ ├── typedtree_typedef.sh │ ├── unused_var.ml │ └── xbuild_type_conv_with_camlp4.sh ├── functors/ │ ├── build_extended_fqueue.sh │ ├── build_fqueue.sh │ ├── compare_example.ml │ ├── destructive_sub.syntax │ ├── extended_fqueue.ml │ ├── extended_fqueue.mli │ ├── foldable.ml │ ├── fqueue.ml │ ├── fqueue.mli │ ├── main-15.rawscript │ ├── main-18.rawscript │ ├── main-21.rawscript │ ├── main-25.rawscript │ ├── main.topscript │ ├── multi_sharing_constraint.syntax │ ├── sexpable.ml │ └── sharing_constraint.syntax ├── gc/ │ ├── barrier_bench.ml │ ├── finalizer.ml │ ├── minor_heap.ascii │ ├── run_barrier_bench.sh │ ├── run_finalizer.sh │ ├── show_barrier_bench_help.sh │ └── tune.topscript ├── guided-tour/ │ ├── build_sum.sh │ ├── local_let.topscript │ ├── main.topscript │ ├── recursion.ml │ ├── run_sum.sh │ ├── sum.ml │ └── sum.rawsh ├── imperative-programming/ │ ├── .gitignore │ ├── array-get.syntax │ ├── array-set.syntax │ ├── bigarray.syntax │ ├── build_all.sh │ ├── dictionary.ml │ ├── dictionary.mli │ ├── dictionary2.ml │ ├── dlist.ml │ ├── dlist.mli │ ├── edit_distance.ascii │ ├── edit_distance2.ascii │ ├── examples.topscript │ ├── fib.topscript │ ├── file.topscript │ ├── file2.topscript │ ├── for.topscript │ ├── lazy.topscript │ ├── let-unit.syntax │ ├── let_rec.ml │ ├── letrec.topscript │ ├── memo.topscript │ ├── order.topscript │ ├── printf.topscript │ ├── ref.topscript │ ├── remember_type.ml │ ├── semicolon-syntax.syntax │ ├── semicolon.syntax │ ├── string.syntax │ ├── time_converter.ml │ ├── time_converter.rawsh │ ├── time_converter2.ml │ ├── time_converter2.rawsh │ ├── value_restriction-13.rawscript │ ├── value_restriction.topscript │ └── weak.topscript ├── installation/ │ ├── arch_install.rawsh │ ├── arch_opam.rawsh │ ├── brew_install.rawsh │ ├── brew_opam_install.rawsh │ ├── debian_apt.rawsh │ ├── debian_apt_opam.rawsh │ ├── emacsrc.scm │ ├── fedora_install.rawsh │ ├── macports_install.rawsh │ ├── macports_opam_install.rawsh │ ├── ocaml_src_install.rawsh │ ├── ocaml_user_conf.rawsh │ ├── opam_eval.rawsh │ ├── opam_init.rawsh │ ├── opam_install.rawsh │ ├── opam_install_utop.rawsh │ ├── opam_list.rawsh │ ├── opam_switch.rawsh │ ├── open_core.ml │ ├── show_ocamlinit.rawsh │ └── ubuntu_opam_ppa.rawsh ├── json/ │ ├── _tags │ ├── book.json │ ├── build_github_atd.sh │ ├── build_github_org.sh │ ├── build_json.topscript │ ├── generate_github_org_json.sh │ ├── generate_github_org_types.sh │ ├── github.atd │ ├── github_j.ml │ ├── github_j.mli │ ├── github_j_excerpt.mli │ ├── github_org.atd │ ├── github_org_info.ml │ ├── github_org_j.ml │ ├── github_org_j.mli │ ├── github_org_t.ml │ ├── github_org_t.mli │ ├── github_t.ml │ ├── github_t.mli │ ├── install.topscript │ ├── install_atdgen.rawsh │ ├── list_excerpt.mli │ ├── parse_book.ml │ ├── parse_book.topscript │ ├── read_json.ml │ ├── run_github_org.sh │ ├── run_parse_book.sh │ ├── run_read_json.sh │ ├── yojson_basic.mli │ ├── yojson_basic_simple.mli │ └── yojson_safe.mli ├── lists-and-patterns/ │ ├── example.ml │ ├── example.mli │ ├── lists_layout.ascii │ └── main.topscript ├── maps-and-hash-tables/ │ ├── comparable.ml │ ├── core_phys_equal.topscript │ ├── main-22.rawscript │ ├── main-23.rawscript │ ├── main-24.rawscript │ ├── main-30.rawscript │ ├── main.topscript │ ├── map_vs_hash.ml │ ├── map_vs_hash2.ml │ ├── phys_equal.rawscript │ ├── run_map_vs_hash.sh │ └── run_map_vs_hash2.sh ├── memory-repr/ │ ├── block.ascii │ ├── custom_ops.c │ ├── float_array_layout.ascii │ ├── reprs.topscript │ ├── simple_record.topscript │ ├── string_block.ascii │ ├── string_size_calc.ascii │ └── tuple_layout.ascii ├── objects/ │ ├── IsBarbell.java │ ├── Shape.java │ ├── immutable.topscript │ ├── is_barbell.ml │ ├── narrowing.ml │ ├── polymorphism.topscript │ ├── row_polymorphism.topscript │ ├── stack.topscript │ ├── subtyping.ml │ └── subtyping.topscript ├── ocp-index/ │ └── index_ncurses.sh ├── packing/ │ ├── A.ml │ ├── B.ml │ ├── X.mlpack │ ├── _tags │ ├── build_test.sh │ ├── show_files.sh │ └── test.ml ├── parsing/ │ ├── basic_parser.mly │ ├── build_short_parser.sh │ ├── example.json │ ├── json.ml │ ├── lex.syntax │ ├── lexer.mll │ ├── lexer_int_fragment.mll │ ├── manual_token_type.ml │ ├── parsed_example.ml │ ├── parser.mly │ ├── production.syntax │ ├── prog.mli │ ├── quadratic_rule.mly │ ├── right_rec_rule.mly │ ├── short_parser.mly │ ├── tokenized_example.ml │ ├── tokens.ml │ └── yacc.syntax ├── parsing-test/ │ ├── build_json_parser.sh │ ├── build_test.sh │ ├── run_broken_test.errsh │ ├── test.ml │ ├── test1.json │ └── test2.json ├── principal/ │ └── build_principal.sh ├── records/ │ ├── functional_update.syntax │ ├── main-29.rawscript │ ├── main.topscript │ ├── record.syntax │ └── warn_help.sh ├── sexpr/ │ ├── auto_making_sexp.topscript │ ├── basic.scm │ ├── build_read_foo.errsh │ ├── build_read_foo_better_errors.errsh │ ├── build_test_interval.sh │ ├── build_test_interval_manual_sexp.sh │ ├── build_test_interval_nosexp.errsh │ ├── comment_heavy.scm │ ├── example.scm │ ├── example_broken.scm │ ├── example_load.topscript │ ├── foo_broken_example.scm │ ├── inline_sexp.topscript │ ├── int_interval.ml │ ├── int_interval.mli │ ├── int_interval_manual_sexp.ml │ ├── int_interval_manual_sexp.mli │ ├── int_interval_nosexp.ml │ ├── int_interval_nosexp.mli │ ├── list_top_packages.sh │ ├── manually_making_sexp.topscript │ ├── print_sexp.topscript │ ├── read_foo.ml │ ├── read_foo_better_errors.ml │ ├── sexp.mli │ ├── sexp_default.topscript │ ├── sexp_list.topscript │ ├── sexp_opaque.topscript │ ├── sexp_option.topscript │ ├── sexp_override.ml │ ├── sexp_printer.topscript │ ├── test_interval.ml │ ├── test_interval_manual_sexp.ml │ ├── test_interval_nosexp.ml │ └── to_from_sexp.topscript ├── variables-and-functions/ │ ├── abs_diff.mli │ ├── htable_sig1.ml │ ├── htable_sig2.ml │ ├── let.syntax │ ├── let_in.syntax │ ├── main.topscript │ ├── numerical_deriv_alt_sig.mli │ ├── operators.syntax │ ├── substring_sig1.ml │ └── substring_sig2.ml ├── variants/ │ ├── blang.topscript │ ├── catch_all.topscript │ ├── logger.topscript │ ├── main-2.rawscript │ ├── main-5.rawscript │ ├── main.topscript │ └── variant.syntax ├── variants-termcol/ │ ├── build.sh │ ├── terminal_color.ml │ └── terminal_color.mli ├── variants-termcol-annotated/ │ ├── build.errsh │ ├── terminal_color.ml │ └── terminal_color.mli └── variants-termcol-fixed/ ├── build.sh ├── terminal_color.ml └── terminal_color.mli