The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .devcontainer
    ├── Dockerfile
    ├── devcontainer.json
    └── postCreate.sh
├── .gitattributes
├── .github
    ├── ISSUE_TEMPLATE
    │   ├── bug_report.md
    │   ├── config.yml
    │   └── feature_request.md
    └── workflows
    │   ├── ci.yml
    │   ├── moveArtifacts.sh
    │   ├── prepare_package_upload.js
    │   └── stale.yml
├── .gitignore
├── .istanbul.yml
├── .mcp.json
├── .nvmrc
├── .ocamlformat
├── .ocamlformat-ignore
├── .python-version
├── .vscode
    └── extensions.json
├── .yarn
    └── releases
    │   └── yarn-4.9.1.cjs
├── .yarnrc.yml
├── CHANGELOG.md
├── CLAUDE.md
├── CONTRIBUTING.md
├── COPYING
├── COPYING.LESSER
├── CREDITS.md
├── DCO.md
├── Example.res
├── LICENSE
├── Makefile
├── README.md
├── analysis.opam
├── analysis
    ├── README.md
    ├── bin
    │   ├── dune
    │   └── main.ml
    ├── dune
    ├── examples
    │   ├── example-project
    │   │   ├── .gitignore
    │   │   ├── bsconfig.json
    │   │   ├── package.json
    │   │   ├── src
    │   │   │   ├── B.re
    │   │   │   ├── Embeded.md
    │   │   │   ├── Hello.res
    │   │   │   ├── Json.res
    │   │   │   ├── ModuleWithDocComment.res
    │   │   │   ├── More.res
    │   │   │   ├── More.resi
    │   │   │   ├── Other.res
    │   │   │   ├── Serde.res
    │   │   │   ├── TransformHelpers.res
    │   │   │   ├── ZZ.res
    │   │   │   └── syntax
    │   │   │   │   ├── sample-highlighting.res
    │   │   │   │   ├── sample-highlighting.rs
    │   │   │   │   └── sample-highlighting.tsx
    │   │   └── types.json
    │   ├── larger-project
    │   │   ├── .gitignore
    │   │   ├── .merlin
    │   │   ├── bsconfig.json
    │   │   ├── package.json
    │   │   └── src
    │   │   │   ├── AutoAnnotate.js
    │   │   │   ├── AutoAnnotate.res
    │   │   │   ├── BootloaderResource.js
    │   │   │   ├── BootloaderResource.res
    │   │   │   ├── BucklescriptAnnotations.js
    │   │   │   ├── BucklescriptAnnotations.res
    │   │   │   ├── ComponentAsProp.js
    │   │   │   ├── ComponentAsProp.res
    │   │   │   ├── CreateErrorHandler1.js
    │   │   │   ├── CreateErrorHandler1.res
    │   │   │   ├── CreateErrorHandler2.js
    │   │   │   ├── CreateErrorHandler2.res
    │   │   │   ├── DeadCodeImplementation.js
    │   │   │   ├── DeadCodeImplementation.res
    │   │   │   ├── DeadCodeInterface.js
    │   │   │   ├── DeadCodeInterface.res
    │   │   │   ├── DeadExn.js
    │   │   │   ├── DeadExn.res
    │   │   │   ├── DeadExn.resi
    │   │   │   ├── DeadRT.js
    │   │   │   ├── DeadRT.res
    │   │   │   ├── DeadRT.resi
    │   │   │   ├── DeadTest.js
    │   │   │   ├── DeadTest.res
    │   │   │   ├── DeadTestBlacklist.js
    │   │   │   ├── DeadTestBlacklist.res
    │   │   │   ├── DeadTestWithInterface.js
    │   │   │   ├── DeadTestWithInterface.res
    │   │   │   ├── DeadTestWithInterface.resi
    │   │   │   ├── DeadTypeTest.js
    │   │   │   ├── DeadTypeTest.res
    │   │   │   ├── DeadTypeTest.resi
    │   │   │   ├── DeadValueTest.js
    │   │   │   ├── DeadValueTest.res
    │   │   │   ├── DeadValueTest.resi
    │   │   │   ├── Docstrings.js
    │   │   │   ├── Docstrings.res
    │   │   │   ├── DynamicallyLoadedComponent.js
    │   │   │   ├── DynamicallyLoadedComponent.res
    │   │   │   ├── EmptyArray.js
    │   │   │   ├── EmptyArray.res
    │   │   │   ├── ErrorHandler.js
    │   │   │   ├── ErrorHandler.res
    │   │   │   ├── ErrorHandler.resi
    │   │   │   ├── EverythingLiveHere.js
    │   │   │   ├── EverythingLiveHere.res
    │   │   │   ├── FC.js
    │   │   │   ├── FC.res
    │   │   │   ├── FirstClassModules.js
    │   │   │   ├── FirstClassModules.res
    │   │   │   ├── FirstClassModulesInterface.js
    │   │   │   ├── FirstClassModulesInterface.res
    │   │   │   ├── FirstClassModulesInterface.resi
    │   │   │   ├── Hooks.js
    │   │   │   ├── Hooks.res
    │   │   │   ├── IgnoreInterface.js
    │   │   │   ├── IgnoreInterface.res
    │   │   │   ├── IgnoreInterface.resi
    │   │   │   ├── ImmutableArray.js
    │   │   │   ├── ImmutableArray.res
    │   │   │   ├── ImmutableArray.resi
    │   │   │   ├── ImportHookDefault.js
    │   │   │   ├── ImportHookDefault.res
    │   │   │   ├── ImportHooks.js
    │   │   │   ├── ImportHooks.res
    │   │   │   ├── ImportIndex.js
    │   │   │   ├── ImportIndex.res
    │   │   │   ├── ImportJsValue.js
    │   │   │   ├── ImportJsValue.res
    │   │   │   ├── ImportMyBanner.js
    │   │   │   ├── ImportMyBanner.res
    │   │   │   ├── JSResource.js
    │   │   │   ├── JSResource.res
    │   │   │   ├── LetPrivate.js
    │   │   │   ├── LetPrivate.res
    │   │   │   ├── ModuleAliases.js
    │   │   │   ├── ModuleAliases.res
    │   │   │   ├── ModuleAliases2.js
    │   │   │   ├── ModuleAliases2.res
    │   │   │   ├── ModuleExceptionBug.js
    │   │   │   ├── ModuleExceptionBug.res
    │   │   │   ├── NestedModules.js
    │   │   │   ├── NestedModules.res
    │   │   │   ├── NestedModulesInSignature.js
    │   │   │   ├── NestedModulesInSignature.res
    │   │   │   ├── NestedModulesInSignature.resi
    │   │   │   ├── Newsyntax.js
    │   │   │   ├── Newsyntax.res
    │   │   │   ├── Newton.js
    │   │   │   ├── Newton.res
    │   │   │   ├── Opaque.js
    │   │   │   ├── Opaque.res
    │   │   │   ├── OptArg.js
    │   │   │   ├── OptArg.res
    │   │   │   ├── OptArg.resi
    │   │   │   ├── P.js
    │   │   │   ├── P.res
    │   │   │   ├── Records.js
    │   │   │   ├── Records.res
    │   │   │   ├── References.js
    │   │   │   ├── References.res
    │   │   │   ├── RepeatedLabel.js
    │   │   │   ├── RepeatedLabel.res
    │   │   │   ├── RequireCond.js
    │   │   │   ├── RequireCond.res
    │   │   │   ├── Shadow.js
    │   │   │   ├── Shadow.res
    │   │   │   ├── TestDeadExn.js
    │   │   │   ├── TestDeadExn.res
    │   │   │   ├── TestEmitInnerModules.js
    │   │   │   ├── TestEmitInnerModules.res
    │   │   │   ├── TestFirstClassModules.js
    │   │   │   ├── TestFirstClassModules.res
    │   │   │   ├── TestImmutableArray.js
    │   │   │   ├── TestImmutableArray.res
    │   │   │   ├── TestImport.js
    │   │   │   ├── TestImport.res
    │   │   │   ├── TestModuleAliases.js
    │   │   │   ├── TestModuleAliases.res
    │   │   │   ├── TestOptArg.js
    │   │   │   ├── TestOptArg.res
    │   │   │   ├── TestPromise.js
    │   │   │   ├── TestPromise.res
    │   │   │   ├── ToSuppress.js
    │   │   │   ├── ToSuppress.res
    │   │   │   ├── TransitiveType1.js
    │   │   │   ├── TransitiveType1.res
    │   │   │   ├── TransitiveType2.js
    │   │   │   ├── TransitiveType2.res
    │   │   │   ├── TransitiveType3.js
    │   │   │   ├── TransitiveType3.res
    │   │   │   ├── Tuples.js
    │   │   │   ├── Tuples.res
    │   │   │   ├── TypeParams1.js
    │   │   │   ├── TypeParams1.res
    │   │   │   ├── TypeParams2.js
    │   │   │   ├── TypeParams2.res
    │   │   │   ├── TypeParams3.js
    │   │   │   ├── TypeParams3.res
    │   │   │   ├── Types.js
    │   │   │   ├── Types.res
    │   │   │   ├── Unboxed.js
    │   │   │   ├── Unboxed.res
    │   │   │   ├── Uncurried.js
    │   │   │   ├── Uncurried.res
    │   │   │   ├── Unison.js
    │   │   │   ├── Unison.res
    │   │   │   ├── UseImportJsValue.js
    │   │   │   ├── UseImportJsValue.res
    │   │   │   ├── Variants.js
    │   │   │   ├── Variants.res
    │   │   │   ├── VariantsWithPayload.js
    │   │   │   ├── VariantsWithPayload.res
    │   │   │   ├── arg_helper.js
    │   │   │   ├── arg_helper.res
    │   │   │   ├── ast_helper.js
    │   │   │   ├── ast_helper.res
    │   │   │   ├── asttypes.js
    │   │   │   ├── asttypes.res
    │   │   │   ├── clflags.js
    │   │   │   ├── clflags.res
    │   │   │   ├── config.js
    │   │   │   ├── config.res
    │   │   │   ├── exception
    │   │   │       ├── Arr.js
    │   │   │       ├── Arr.res
    │   │   │       ├── BeltTest.js
    │   │   │       ├── BeltTest.res
    │   │   │       ├── BsJson.js
    │   │   │       ├── BsJson.res
    │   │   │       ├── Exn.js
    │   │   │       ├── Exn.res
    │   │   │       ├── ExnA.js
    │   │   │       ├── ExnA.res
    │   │   │       ├── ExnB.js
    │   │   │       ├── ExnB.res
    │   │   │       ├── ExportWithRename.js
    │   │   │       ├── ExportWithRename.res
    │   │   │       ├── InnerModules.js
    │   │   │       ├── InnerModules.res
    │   │   │       ├── TestInnerModules.js
    │   │   │       ├── TestInnerModules.res
    │   │   │       ├── TestYojson.js
    │   │   │       ├── TestYojson.res
    │   │   │       ├── Yojson.js
    │   │   │       └── Yojson.res
    │   │   │   ├── format.js
    │   │   │   ├── format.res
    │   │   │   ├── identifiable.js
    │   │   │   ├── location.js
    │   │   │   ├── location.res
    │   │   │   ├── longident.js
    │   │   │   ├── longident.res
    │   │   │   ├── loop.js
    │   │   │   ├── loop.res
    │   │   │   ├── misc.js
    │   │   │   ├── misc.res
    │   │   │   ├── nativeint.js
    │   │   │   ├── nativeint.res
    │   │   │   ├── numbers.js
    │   │   │   ├── numbers.res
    │   │   │   ├── parsetree.js
    │   │   │   ├── parsetree.res
    │   │   │   ├── printf.js
    │   │   │   ├── printf.res
    │   │   │   ├── res_comment.js
    │   │   │   ├── res_comment.res
    │   │   │   ├── res_comments_table.js
    │   │   │   ├── res_comments_table.res
    │   │   │   ├── res_core.js
    │   │   │   ├── res_core.res
    │   │   │   ├── res_diagnostics.js
    │   │   │   ├── res_diagnostics.res
    │   │   │   ├── res_diagnostics_printing_utils.js
    │   │   │   ├── res_diagnostics_printing_utils.res
    │   │   │   ├── res_doc.js
    │   │   │   ├── res_doc.res
    │   │   │   ├── res_grammar.js
    │   │   │   ├── res_grammar.res
    │   │   │   ├── res_js_ffi.js
    │   │   │   ├── res_js_ffi.res
    │   │   │   ├── res_minibuffer.js
    │   │   │   ├── res_minibuffer.res
    │   │   │   ├── res_parens.js
    │   │   │   ├── res_parens.res
    │   │   │   ├── res_parser.js
    │   │   │   ├── res_parser.res
    │   │   │   ├── res_parsetree_viewer.js
    │   │   │   ├── res_parsetree_viewer.res
    │   │   │   ├── res_printer.js
    │   │   │   ├── res_printer.res
    │   │   │   ├── res_reporting.js
    │   │   │   ├── res_reporting.res
    │   │   │   ├── res_scanner.js
    │   │   │   ├── res_scanner.res
    │   │   │   ├── res_token.js
    │   │   │   ├── res_token.res
    │   │   │   ├── res_utf8.js
    │   │   │   ├── res_utf8.res
    │   │   │   ├── syntaxerr.js
    │   │   │   ├── syntaxerr.res
    │   │   │   ├── warnings.js
    │   │   │   └── warnings.res
    │   └── workspace-project
    │   │   ├── .gitignore
    │   │   ├── README.md
    │   │   ├── app
    │   │       ├── bsconfig.json
    │   │       ├── package.json
    │   │       └── src
    │   │       │   └── App.res
    │   │   ├── bsconfig.json
    │   │   ├── common
    │   │       ├── bsconfig.json
    │   │       ├── package.json
    │   │       └── src
    │   │       │   ├── Utils.mjs
    │   │       │   └── Utils.res
    │   │   ├── myplugin
    │   │       ├── bsconfig.json
    │   │       ├── package.json
    │   │       └── src
    │   │       │   ├── Promise.mjs
    │   │       │   └── Promise.res
    │   │   └── package.json
    ├── reanalyze
    │   ├── dune
    │   └── src
    │   │   ├── Annotation.ml
    │   │   ├── Arnold.ml
    │   │   ├── Common.ml
    │   │   ├── DeadCode.ml
    │   │   ├── DeadCommon.ml
    │   │   ├── DeadException.ml
    │   │   ├── DeadModules.ml
    │   │   ├── DeadOptionalArgs.ml
    │   │   ├── DeadType.ml
    │   │   ├── DeadValue.ml
    │   │   ├── EmitJson.ml
    │   │   ├── Exception.ml
    │   │   ├── Exceptions.ml
    │   │   ├── Exn.ml
    │   │   ├── Exn.mli
    │   │   ├── ExnLib.ml
    │   │   ├── FindSourceFile.ml
    │   │   ├── Issues.ml
    │   │   ├── Log_.ml
    │   │   ├── ModulePath.ml
    │   │   ├── Name.ml
    │   │   ├── Name.mli
    │   │   ├── Paths.ml
    │   │   ├── Reanalyze.ml
    │   │   ├── RunConfig.ml
    │   │   ├── SideEffects.ml
    │   │   ├── Suppress.ml
    │   │   ├── Version.ml
    │   │   ├── WriteDeadAnnotations.ml
    │   │   └── dune
    ├── src
    │   ├── BuildSystem.ml
    │   ├── Cache.ml
    │   ├── Cfg.ml
    │   ├── Cmt.ml
    │   ├── CmtViewer.ml
    │   ├── CodeActions.ml
    │   ├── Codemod.ml
    │   ├── Commands.ml
    │   ├── CompletionBackEnd.ml
    │   ├── CompletionDecorators.ml
    │   ├── CompletionExpressions.ml
    │   ├── CompletionFrontEnd.ml
    │   ├── CompletionJsx.ml
    │   ├── CompletionPatterns.ml
    │   ├── Completions.ml
    │   ├── CreateInterface.ml
    │   ├── DceCommand.ml
    │   ├── Debug.ml
    │   ├── Diagnostics.ml
    │   ├── DocumentSymbol.ml
    │   ├── DotCompletionUtils.ml
    │   ├── DumpAst.ml
    │   ├── Files.ml
    │   ├── FindFiles.ml
    │   ├── Hint.ml
    │   ├── Hover.ml
    │   ├── JsxHacks.ml
    │   ├── Loc.ml
    │   ├── LocalTables.ml
    │   ├── Log.ml
    │   ├── Markdown.ml
    │   ├── ModuleResolution.ml
    │   ├── Packages.ml
    │   ├── PipeCompletionUtils.ml
    │   ├── Pos.ml
    │   ├── PrintType.ml
    │   ├── ProcessAttributes.ml
    │   ├── ProcessCmt.ml
    │   ├── ProcessExtra.ml
    │   ├── Protocol.ml
    │   ├── Range.ml
    │   ├── References.ml
    │   ├── ResolvePath.ml
    │   ├── Scope.ml
    │   ├── SemanticTokens.ml
    │   ├── Shared.ml
    │   ├── SharedTypes.ml
    │   ├── SignatureHelp.ml
    │   ├── TypeUtils.ml
    │   ├── Uri.ml
    │   ├── Uri.mli
    │   ├── Utils.ml
    │   ├── Xform.ml
    │   └── dune
    └── vendor
    │   ├── .ocamlformat
    │   ├── dune
    │   └── json
    │       ├── Json.ml
    │       └── dune
├── biome.json
├── cli
    ├── bsc.js
    ├── bstracing.js
    ├── common
    │   ├── args.js
    │   ├── bins.js
    │   └── bsb.js
    ├── rescript-legacy.js
    ├── rescript-legacy
    │   ├── dump.js
    │   └── format.js
    ├── rescript-tools.js
    └── rescript.js
├── compiler
    ├── bsb
    │   ├── bsb.md
    │   ├── bsb_arg.ml
    │   ├── bsb_arg.mli
    │   ├── bsb_build_schemas.ml
    │   ├── bsb_build_util.ml
    │   ├── bsb_build_util.mli
    │   ├── bsb_clean.ml
    │   ├── bsb_clean.mli
    │   ├── bsb_config.ml
    │   ├── bsb_config.mli
    │   ├── bsb_config_load.ml
    │   ├── bsb_config_load.mli
    │   ├── bsb_config_parse.ml
    │   ├── bsb_config_parse.mli
    │   ├── bsb_config_types.ml
    │   ├── bsb_db_encode.ml
    │   ├── bsb_db_encode.mli
    │   ├── bsb_db_util.ml
    │   ├── bsb_db_util.mli
    │   ├── bsb_exception.ml
    │   ├── bsb_exception.mli
    │   ├── bsb_file_groups.ml
    │   ├── bsb_file_groups.mli
    │   ├── bsb_global_paths.ml
    │   ├── bsb_global_paths.mli
    │   ├── bsb_jsx.ml
    │   ├── bsb_log.ml
    │   ├── bsb_log.mli
    │   ├── bsb_namespace_map_gen.ml
    │   ├── bsb_namespace_map_gen.mli
    │   ├── bsb_ninja_check.ml
    │   ├── bsb_ninja_check.mli
    │   ├── bsb_ninja_file_groups.ml
    │   ├── bsb_ninja_file_groups.mli
    │   ├── bsb_ninja_gen.ml
    │   ├── bsb_ninja_gen.mli
    │   ├── bsb_ninja_global_vars.ml
    │   ├── bsb_ninja_regen.ml
    │   ├── bsb_ninja_regen.mli
    │   ├── bsb_ninja_rule.ml
    │   ├── bsb_ninja_rule.mli
    │   ├── bsb_ninja_targets.ml
    │   ├── bsb_ninja_targets.mli
    │   ├── bsb_package_kind.ml
    │   ├── bsb_package_specs.ml
    │   ├── bsb_package_specs.mli
    │   ├── bsb_parse_sources.ml
    │   ├── bsb_parse_sources.mli
    │   ├── bsb_pkg.ml
    │   ├── bsb_pkg.mli
    │   ├── bsb_pkg_types.ml
    │   ├── bsb_pkg_types.mli
    │   ├── bsb_real_path.ml
    │   ├── bsb_real_path.mli
    │   ├── bsb_regex.ml
    │   ├── bsb_regex.mli
    │   ├── bsb_spec_set.ml
    │   ├── bsb_spec_set.mli
    │   ├── bsb_unix.ml
    │   ├── bsb_unix.mli
    │   ├── bsb_warning.ml
    │   ├── bsb_warning.mli
    │   ├── bsb_watcher_gen.ml
    │   ├── bsb_watcher_gen.mli
    │   ├── bsb_world.ml
    │   ├── bsb_world.mli
    │   ├── data_format.md
    │   └── dune
    ├── bsb_exe
    │   ├── dune
    │   ├── rescript_main.ml
    │   └── rescript_main.mli
    ├── bsb_helper
    │   ├── bsb_db_decode.ml
    │   ├── bsb_db_decode.mli
    │   ├── bsb_helper_depfile_gen.ml
    │   ├── bsb_helper_depfile_gen.mli
    │   └── dune
    ├── bsb_helper_exe
    │   ├── bsb_helper_main.ml
    │   ├── bsb_helper_main.mli
    │   └── dune
    ├── bsc
    │   ├── dune
    │   ├── rescript_compiler_main.ml
    │   └── rescript_compiler_main.mli
    ├── common
    │   ├── bs_loc.ml
    │   ├── bs_loc.mli
    │   ├── bs_version.ml
    │   ├── bs_version.mli
    │   ├── bs_warnings.ml
    │   ├── bs_warnings.mli
    │   ├── dune
    │   ├── ext_log.ml
    │   ├── ext_log.mli
    │   ├── js_config.ml
    │   ├── js_config.mli
    │   ├── ml_binary.ml
    │   ├── ml_binary.mli
    │   ├── pattern_printer.ml
    │   └── pattern_printer.mli
    ├── core
    │   ├── FIXME.adoc
    │   ├── bs_cmi_load.ml
    │   ├── bs_conditional_initial.ml
    │   ├── bs_conditional_initial.mli
    │   ├── cmd_ast_exception.ml
    │   ├── cmd_ppx_apply.ml
    │   ├── config_util.ml
    │   ├── config_util.mli
    │   ├── design.md
    │   ├── destruct_exn.md
    │   ├── dune
    │   ├── j.ml
    │   ├── js_analyzer.ml
    │   ├── js_analyzer.mli
    │   ├── js_arr.ml
    │   ├── js_arr.mli
    │   ├── js_ast_util.ml
    │   ├── js_ast_util.mli
    │   ├── js_block_runtime.ml
    │   ├── js_block_runtime.mli
    │   ├── js_call_info.ml
    │   ├── js_call_info.mli
    │   ├── js_cmj_format.ml
    │   ├── js_cmj_format.mli
    │   ├── js_cmj_load.ml
    │   ├── js_cmj_load.mli
    │   ├── js_dump.ml
    │   ├── js_dump.mli
    │   ├── js_dump_import_export.ml
    │   ├── js_dump_import_export.mli
    │   ├── js_dump_lit.ml
    │   ├── js_dump_program.ml
    │   ├── js_dump_program.mli
    │   ├── js_dump_property.ml
    │   ├── js_dump_property.mli
    │   ├── js_dump_string.ml
    │   ├── js_dump_string.mli
    │   ├── js_exp_make.ml
    │   ├── js_exp_make.mli
    │   ├── js_fold.ml
    │   ├── js_fold_basic.ml
    │   ├── js_fold_basic.mli
    │   ├── js_fun_env.ml
    │   ├── js_fun_env.mli
    │   ├── js_implementation.ml
    │   ├── js_implementation.mli
    │   ├── js_name_of_module_id.ml
    │   ├── js_name_of_module_id.mli
    │   ├── js_number.ml
    │   ├── js_number.mli
    │   ├── js_of_lam_array.ml
    │   ├── js_of_lam_array.mli
    │   ├── js_of_lam_block.ml
    │   ├── js_of_lam_block.mli
    │   ├── js_of_lam_option.ml
    │   ├── js_of_lam_option.mli
    │   ├── js_of_lam_string.ml
    │   ├── js_of_lam_string.mli
    │   ├── js_of_lam_variant.ml
    │   ├── js_of_lam_variant.mli
    │   ├── js_op.ml
    │   ├── js_op_util.ml
    │   ├── js_op_util.mli
    │   ├── js_output.ml
    │   ├── js_output.mli
    │   ├── js_packages_info.ml
    │   ├── js_packages_info.mli
    │   ├── js_packages_state.ml
    │   ├── js_packages_state.mli
    │   ├── js_pass_debug.ml
    │   ├── js_pass_debug.mli
    │   ├── js_pass_flatten.ml
    │   ├── js_pass_flatten.mli
    │   ├── js_pass_flatten_and_mark_dead.ml
    │   ├── js_pass_flatten_and_mark_dead.mli
    │   ├── js_pass_get_used.ml
    │   ├── js_pass_get_used.mli
    │   ├── js_pass_scope.ml
    │   ├── js_pass_scope.mli
    │   ├── js_pass_tailcall_inline.ml
    │   ├── js_pass_tailcall_inline.mli
    │   ├── js_record_fold.ml
    │   ├── js_record_iter.ml
    │   ├── js_record_map.ml
    │   ├── js_shake.ml
    │   ├── js_shake.mli
    │   ├── js_stmt_make.ml
    │   ├── js_stmt_make.mli
    │   ├── lam.ml
    │   ├── lam.mli
    │   ├── lam_analysis.ml
    │   ├── lam_analysis.mli
    │   ├── lam_arity.ml
    │   ├── lam_arity.mli
    │   ├── lam_arity_analysis.ml
    │   ├── lam_arity_analysis.mli
    │   ├── lam_beta_reduce.ml
    │   ├── lam_beta_reduce.mli
    │   ├── lam_beta_reduce_util.ml
    │   ├── lam_beta_reduce_util.mli
    │   ├── lam_bounded_vars.ml
    │   ├── lam_bounded_vars.mli
    │   ├── lam_check.ml
    │   ├── lam_check.mli
    │   ├── lam_closure.ml
    │   ├── lam_closure.mli
    │   ├── lam_coercion.ml
    │   ├── lam_coercion.mli
    │   ├── lam_compat.ml
    │   ├── lam_compat.mli
    │   ├── lam_compile.ml
    │   ├── lam_compile.mli
    │   ├── lam_compile_const.ml
    │   ├── lam_compile_const.mli
    │   ├── lam_compile_context.ml
    │   ├── lam_compile_context.mli
    │   ├── lam_compile_env.ml
    │   ├── lam_compile_env.mli
    │   ├── lam_compile_external_call.ml
    │   ├── lam_compile_external_call.mli
    │   ├── lam_compile_external_obj.ml
    │   ├── lam_compile_external_obj.mli
    │   ├── lam_compile_main.ml
    │   ├── lam_compile_main.mli
    │   ├── lam_compile_primitive.ml
    │   ├── lam_compile_primitive.mli
    │   ├── lam_compile_util.ml
    │   ├── lam_compile_util.mli
    │   ├── lam_constant_convert.ml
    │   ├── lam_constant_convert.mli
    │   ├── lam_convert.ml
    │   ├── lam_convert.mli
    │   ├── lam_dce.ml
    │   ├── lam_dce.mli
    │   ├── lam_eta_conversion.ml
    │   ├── lam_eta_conversion.mli
    │   ├── lam_exit_code.ml
    │   ├── lam_exit_code.mli
    │   ├── lam_exit_count.ml
    │   ├── lam_exit_count.mli
    │   ├── lam_free_variables.ml
    │   ├── lam_free_variables.mli
    │   ├── lam_group.ml
    │   ├── lam_group.mli
    │   ├── lam_hit.ml
    │   ├── lam_hit.mli
    │   ├── lam_id_kind.ml
    │   ├── lam_id_kind.mli
    │   ├── lam_iter.ml
    │   ├── lam_iter.mli
    │   ├── lam_module_ident.ml
    │   ├── lam_module_ident.mli
    │   ├── lam_pass_alpha_conversion.ml
    │   ├── lam_pass_alpha_conversion.mli
    │   ├── lam_pass_collect.ml
    │   ├── lam_pass_collect.mli
    │   ├── lam_pass_count.ml
    │   ├── lam_pass_count.mli
    │   ├── lam_pass_deep_flatten.ml
    │   ├── lam_pass_deep_flatten.mli
    │   ├── lam_pass_eliminate_ref.ml
    │   ├── lam_pass_eliminate_ref.mli
    │   ├── lam_pass_exits.ml
    │   ├── lam_pass_exits.mli
    │   ├── lam_pass_lets_dce.ml
    │   ├── lam_pass_lets_dce.mli
    │   ├── lam_pass_remove_alias.ml
    │   ├── lam_pass_remove_alias.mli
    │   ├── lam_primitive.ml
    │   ├── lam_primitive.mli
    │   ├── lam_print.ml
    │   ├── lam_print.mli
    │   ├── lam_scc.ml
    │   ├── lam_scc.mli
    │   ├── lam_stats.ml
    │   ├── lam_stats.mli
    │   ├── lam_stats_export.ml
    │   ├── lam_stats_export.mli
    │   ├── lam_subst.ml
    │   ├── lam_subst.mli
    │   ├── lam_tag_info.ml
    │   ├── lam_util.ml
    │   ├── lam_util.mli
    │   ├── lam_var_stats.ml
    │   ├── lam_var_stats.mli
    │   ├── matching_polyfill.ml
    │   ├── matching_polyfill.mli
    │   ├── outcome_printer_ns.ml
    │   ├── outcome_printer_ns.mli
    │   ├── polyvar_pattern_match.ml
    │   ├── record_attributes_check.ml
    │   ├── res_compmisc.ml
    │   └── res_compmisc.mli
    ├── depends
    │   ├── ast_extract.ml
    │   ├── ast_extract.mli
    │   ├── astdump_main.md
    │   ├── binary_ast.ml
    │   ├── binary_ast.mli
    │   ├── bs_exception.ml
    │   ├── bs_exception.mli
    │   └── dune
    ├── dune
    ├── ext
    │   ├── README.md
    │   ├── bs_hash_stubs.ml
    │   ├── bsb_db.ml
    │   ├── bsb_db.mli
    │   ├── bsc_args.ml
    │   ├── bsc_args.mli
    │   ├── bsc_warnings.ml
    │   ├── config.ml
    │   ├── config.mli
    │   ├── dune
    │   ├── encoding.md
    │   ├── ext_array.ml
    │   ├── ext_array.mli
    │   ├── ext_basic_hash_stubs.c
    │   ├── ext_buffer.ml
    │   ├── ext_buffer.mli
    │   ├── ext_bytes.ml
    │   ├── ext_bytes.mli
    │   ├── ext_char.ml
    │   ├── ext_char.mli
    │   ├── ext_color.ml
    │   ├── ext_color.mli
    │   ├── ext_digest.ml
    │   ├── ext_digest.mli
    │   ├── ext_file_extensions.ml
    │   ├── ext_filename.ml
    │   ├── ext_filename.mli
    │   ├── ext_fmt.ml
    │   ├── ext_ident.ml
    │   ├── ext_ident.mli
    │   ├── ext_int.ml
    │   ├── ext_int.mli
    │   ├── ext_io.ml
    │   ├── ext_io.mli
    │   ├── ext_js_file_kind.ml
    │   ├── ext_json.ml
    │   ├── ext_json.mli
    │   ├── ext_json_noloc.ml
    │   ├── ext_json_noloc.mli
    │   ├── ext_json_parse.mli
    │   ├── ext_json_parse.mll
    │   ├── ext_json_types.ml
    │   ├── ext_list.ml
    │   ├── ext_list.mli
    │   ├── ext_marshal.ml
    │   ├── ext_marshal.mli
    │   ├── ext_module_system.ml
    │   ├── ext_modulename.ml
    │   ├── ext_modulename.mli
    │   ├── ext_namespace.ml
    │   ├── ext_namespace.mli
    │   ├── ext_namespace_encode.ml
    │   ├── ext_namespace_encode.mli
    │   ├── ext_obj.ml
    │   ├── ext_obj.mli
    │   ├── ext_option.ml
    │   ├── ext_option.mli
    │   ├── ext_path.ml
    │   ├── ext_path.mli
    │   ├── ext_pervasives.ml
    │   ├── ext_pervasives.mli
    │   ├── ext_position.ml
    │   ├── ext_position.mli
    │   ├── ext_pp.ml
    │   ├── ext_pp.mli
    │   ├── ext_pp_scope.ml
    │   ├── ext_pp_scope.mli
    │   ├── ext_ref.ml
    │   ├── ext_ref.mli
    │   ├── ext_scc.ml
    │   ├── ext_scc.mli
    │   ├── ext_spec.ml
    │   ├── ext_spec.mli
    │   ├── ext_string.ml
    │   ├── ext_string.mli
    │   ├── ext_string_array.ml
    │   ├── ext_string_array.mli
    │   ├── ext_sys.ml
    │   ├── ext_sys.mli
    │   ├── ext_utf8.ml
    │   ├── ext_utf8.mli
    │   ├── ext_util.ml
    │   ├── ext_util.mli
    │   ├── hash.cppo.ml
    │   ├── hash.mli
    │   ├── hash_gen.ml
    │   ├── hash_ident.mli
    │   ├── hash_int.mli
    │   ├── hash_set.cppo.ml
    │   ├── hash_set.mli
    │   ├── hash_set_gen.ml
    │   ├── hash_set_ident.mli
    │   ├── hash_set_ident_mask.ml
    │   ├── hash_set_ident_mask.mli
    │   ├── hash_set_int.mli
    │   ├── hash_set_poly.mli
    │   ├── hash_set_string.mli
    │   ├── hash_string.mli
    │   ├── ident.ml
    │   ├── ident.mli
    │   ├── identifiable.ml
    │   ├── identifiable.mli
    │   ├── int_vec_util.ml
    │   ├── int_vec_util.mli
    │   ├── int_vec_vec.ml
    │   ├── int_vec_vec.mli
    │   ├── js_reserved_map.ml
    │   ├── js_reserved_map.mli
    │   ├── literals.ml
    │   ├── map.cppo.ml
    │   ├── map_gen.ml
    │   ├── map_gen.mli
    │   ├── map_ident.mli
    │   ├── map_int.mli
    │   ├── map_string.mli
    │   ├── misc.ml
    │   ├── misc.mli
    │   ├── ordered_hash_map.cppo.ml
    │   ├── ordered_hash_map_gen.ml
    │   ├── ordered_hash_map_local_ident.mli
    │   ├── primitive_modules.ml
    │   ├── set.cppo.ml
    │   ├── set_gen.ml
    │   ├── set_gen.mli
    │   ├── set_ident.mli
    │   ├── set_int.mli
    │   ├── set_string.mli
    │   ├── vec.cppo.ml
    │   ├── vec.mli
    │   ├── vec_gen.ml
    │   ├── vec_int.mli
    │   ├── warnings.ml
    │   └── warnings.mli
    ├── frontend
    │   ├── ast_attributes.ml
    │   ├── ast_attributes.mli
    │   ├── ast_comb.ml
    │   ├── ast_comb.mli
    │   ├── ast_compatible.ml
    │   ├── ast_compatible.mli
    │   ├── ast_config.ml
    │   ├── ast_config.mli
    │   ├── ast_core_type.ml
    │   ├── ast_core_type.mli
    │   ├── ast_core_type_class_type.ml
    │   ├── ast_core_type_class_type.mli
    │   ├── ast_derive.ml
    │   ├── ast_derive.mli
    │   ├── ast_derive_abstract.ml
    │   ├── ast_derive_abstract.mli
    │   ├── ast_derive_js_mapper.ml
    │   ├── ast_derive_js_mapper.mli
    │   ├── ast_derive_projector.ml
    │   ├── ast_derive_projector.mli
    │   ├── ast_derive_util.ml
    │   ├── ast_derive_util.mli
    │   ├── ast_exp.ml
    │   ├── ast_exp.mli
    │   ├── ast_exp_apply.ml
    │   ├── ast_exp_apply.mli
    │   ├── ast_exp_extension.ml
    │   ├── ast_exp_extension.mli
    │   ├── ast_exp_handle_external.ml
    │   ├── ast_exp_handle_external.mli
    │   ├── ast_external.ml
    │   ├── ast_external.mli
    │   ├── ast_external_mk.ml
    │   ├── ast_external_mk.mli
    │   ├── ast_external_process.ml
    │   ├── ast_external_process.mli
    │   ├── ast_literal.ml
    │   ├── ast_literal.mli
    │   ├── ast_open_cxt.ml
    │   ├── ast_open_cxt.mli
    │   ├── ast_pat.ml
    │   ├── ast_pat.mli
    │   ├── ast_polyvar.ml
    │   ├── ast_polyvar.mli
    │   ├── ast_signature.ml
    │   ├── ast_signature.mli
    │   ├── ast_structure.ml
    │   ├── ast_structure.mli
    │   ├── ast_tdcls.ml
    │   ├── ast_tdcls.mli
    │   ├── ast_tuple_pattern_flatten.ml
    │   ├── ast_tuple_pattern_flatten.mli
    │   ├── ast_typ_uncurry.ml
    │   ├── ast_typ_uncurry.mli
    │   ├── ast_uncurry_gen.ml
    │   ├── ast_uncurry_gen.mli
    │   ├── ast_utf8_string.ml
    │   ├── ast_utf8_string.mli
    │   ├── ast_utf8_string_interp.ml
    │   ├── ast_utf8_string_interp.mli
    │   ├── ast_util.ml
    │   ├── ast_util.mli
    │   ├── bs_ast_invariant.ml
    │   ├── bs_ast_invariant.mli
    │   ├── bs_ast_mapper.ml
    │   ├── bs_ast_mapper.mli
    │   ├── bs_builtin_ppx.ml
    │   ├── bs_builtin_ppx.mli
    │   ├── bs_syntaxerr.ml
    │   ├── bs_syntaxerr.mli
    │   ├── dune
    │   ├── external_arg_spec.ml
    │   ├── external_arg_spec.mli
    │   ├── external_ffi_types.ml
    │   ├── external_ffi_types.mli
    │   ├── lam_constant.ml
    │   ├── lam_constant.mli
    │   ├── ppx_entry.ml
    │   └── typemod_hide.ml
    ├── gentype
    │   ├── Annotation.ml
    │   ├── CodeItem.ml
    │   ├── Converter.ml
    │   ├── Debug.ml
    │   ├── Dependencies.ml
    │   ├── EmitJs.ml
    │   ├── EmitText.ml
    │   ├── EmitType.ml
    │   ├── Emitters.ml
    │   ├── Emitters.mli
    │   ├── ExportModule.ml
    │   ├── FindSourceFile.ml
    │   ├── FindSourceFile.mli
    │   ├── GenIdent.ml
    │   ├── GenTypeCommon.ml
    │   ├── GenTypeConfig.ml
    │   ├── GenTypeMain.ml
    │   ├── GeneratedFiles.ml
    │   ├── ImportPath.ml
    │   ├── ImportPath.mli
    │   ├── Indent.ml
    │   ├── Log_.ml
    │   ├── ModuleExtension.ml
    │   ├── ModuleName.ml
    │   ├── ModuleName.mli
    │   ├── ModuleResolver.ml
    │   ├── NamedArgs.ml
    │   ├── Paths.ml
    │   ├── ResolvedName.ml
    │   ├── ResolvedName.mli
    │   ├── Runtime.ml
    │   ├── Runtime.mli
    │   ├── TranslateCoreType.ml
    │   ├── TranslateSignature.ml
    │   ├── TranslateSignatureFromTypes.ml
    │   ├── TranslateStructure.ml
    │   ├── TranslateTypeDeclarations.ml
    │   ├── TranslateTypeExprFromTypes.ml
    │   ├── Translation.ml
    │   ├── TypeEnv.ml
    │   ├── TypeEnv.mli
    │   ├── TypeVars.ml
    │   └── dune
    ├── jsoo
    │   ├── dune
    │   ├── jsoo_playground_main.ml
    │   └── jsoo_playground_main.mli
    ├── ml
    │   ├── annot.ml
    │   ├── ast_async.ml
    │   ├── ast_await.ml
    │   ├── ast_helper.ml
    │   ├── ast_helper.mli
    │   ├── ast_helper0.ml
    │   ├── ast_iterator.ml
    │   ├── ast_iterator.mli
    │   ├── ast_mapper.ml
    │   ├── ast_mapper.mli
    │   ├── ast_mapper_from0.ml
    │   ├── ast_mapper_to0.ml
    │   ├── ast_payload.ml
    │   ├── ast_payload.mli
    │   ├── ast_uncurried.ml
    │   ├── ast_untagged_variants.ml
    │   ├── asttypes.ml
    │   ├── bigint_utils.ml
    │   ├── bigint_utils.mli
    │   ├── bs_flow_ast_utils.ml
    │   ├── bs_flow_ast_utils.mli
    │   ├── btype.ml
    │   ├── btype.mli
    │   ├── builtin_attributes.ml
    │   ├── builtin_attributes.mli
    │   ├── ccomp.ml
    │   ├── ccomp.mli
    │   ├── classify_function.ml
    │   ├── classify_function.mli
    │   ├── clflags.ml
    │   ├── clflags.mli
    │   ├── cmi_format.ml
    │   ├── cmi_format.mli
    │   ├── cmt_format.ml
    │   ├── cmt_format.mli
    │   ├── code_frame.ml
    │   ├── consistbl.ml
    │   ├── consistbl.mli
    │   ├── ctype.ml
    │   ├── ctype.mli
    │   ├── datarepr.ml
    │   ├── datarepr.mli
    │   ├── delayed_checks.ml
    │   ├── delayed_checks.mli
    │   ├── depend.ml
    │   ├── depend.mli
    │   ├── dict_type_helpers.ml
    │   ├── dune
    │   ├── env.ml
    │   ├── env.mli
    │   ├── error_message_utils.ml
    │   ├── includecore.ml
    │   ├── includecore.mli
    │   ├── includemod.ml
    │   ├── includemod.mli
    │   ├── js_raw_info.ml
    │   ├── lambda.ml
    │   ├── lambda.mli
    │   ├── location.ml
    │   ├── location.mli
    │   ├── longident.ml
    │   ├── longident.mli
    │   ├── matching.ml
    │   ├── matching.mli
    │   ├── mtype.ml
    │   ├── mtype.mli
    │   ├── oprint.ml
    │   ├── oprint.mli
    │   ├── outcometree.ml
    │   ├── parmatch.ml
    │   ├── parmatch.mli
    │   ├── parsetree.ml
    │   ├── parsetree0.ml
    │   ├── path.ml
    │   ├── path.mli
    │   ├── pprintast.ml
    │   ├── pprintast.mli
    │   ├── predef.ml
    │   ├── predef.mli
    │   ├── primitive.ml
    │   ├── primitive.mli
    │   ├── printast.ml
    │   ├── printast.mli
    │   ├── printlambda.ml
    │   ├── printlambda.mli
    │   ├── printtyp.ml
    │   ├── printtyp.mli
    │   ├── printtyped.ml
    │   ├── printtyped.mli
    │   ├── rec_check.ml
    │   ├── rec_check.mli
    │   ├── record_coercion.ml
    │   ├── record_type_spread.ml
    │   ├── rescript_cpp.ml
    │   ├── rescript_cpp.mli
    │   ├── stypes.ml
    │   ├── stypes.mli
    │   ├── subst.ml
    │   ├── subst.mli
    │   ├── switch.ml
    │   ├── switch.mli
    │   ├── syntaxerr.ml
    │   ├── syntaxerr.mli
    │   ├── tast_iterator.ml
    │   ├── tast_iterator.mli
    │   ├── tast_mapper.ml
    │   ├── tast_mapper.mli
    │   ├── tbl.ml
    │   ├── tbl.mli
    │   ├── transl_recmodule.ml
    │   ├── transl_recmodule.mli
    │   ├── translattribute.ml
    │   ├── translattribute.mli
    │   ├── translcore.ml
    │   ├── translcore.mli
    │   ├── translmod.ml
    │   ├── translmod.mli
    │   ├── typecore.ml
    │   ├── typecore.mli
    │   ├── typedecl.ml
    │   ├── typedecl.mli
    │   ├── typedtree.ml
    │   ├── typedtree.mli
    │   ├── typedtreeIter.ml
    │   ├── typedtreeIter.mli
    │   ├── typemod.ml
    │   ├── typemod.mli
    │   ├── typeopt.ml
    │   ├── typeopt.mli
    │   ├── types.ml
    │   ├── types.mli
    │   ├── typetexp.ml
    │   ├── typetexp.mli
    │   ├── unified_ops.ml
    │   ├── unified_ops.mli
    │   ├── untypeast.ml
    │   ├── untypeast.mli
    │   ├── used_attributes.ml
    │   ├── used_attributes.mli
    │   ├── variant_coercion.ml
    │   └── variant_type_spread.ml
    └── syntax
    │   ├── LICENSE
    │   ├── cli
    │       ├── dune
    │       └── res_cli.ml
    │   ├── dune
    │   └── src
    │       ├── dune
    │       ├── jsx_common.ml
    │       ├── jsx_ppx.ml
    │       ├── jsx_ppx.mli
    │       ├── jsx_v4.ml
    │       ├── jsx_v4.mli
    │       ├── res_ast_debugger.ml
    │       ├── res_ast_debugger.mli
    │       ├── res_comment.ml
    │       ├── res_comment.mli
    │       ├── res_comments_table.ml
    │       ├── res_core.ml
    │       ├── res_core.mli
    │       ├── res_diagnostics.ml
    │       ├── res_diagnostics.mli
    │       ├── res_doc.ml
    │       ├── res_doc.mli
    │       ├── res_driver.ml
    │       ├── res_driver.mli
    │       ├── res_driver_binary.ml
    │       ├── res_driver_binary.mli
    │       ├── res_driver_ml_printer.ml
    │       ├── res_driver_ml_printer.mli
    │       ├── res_grammar.ml
    │       ├── res_io.ml
    │       ├── res_io.mli
    │       ├── res_minibuffer.ml
    │       ├── res_minibuffer.mli
    │       ├── res_multi_printer.ml
    │       ├── res_multi_printer.mli
    │       ├── res_outcome_printer.ml
    │       ├── res_outcome_printer.mli
    │       ├── res_parens.ml
    │       ├── res_parens.mli
    │       ├── res_parser.ml
    │       ├── res_parser.mli
    │       ├── res_parsetree_viewer.ml
    │       ├── res_parsetree_viewer.mli
    │       ├── res_printer.ml
    │       ├── res_printer.mli
    │       ├── res_reporting.ml
    │       ├── res_scanner.ml
    │       ├── res_scanner.mli
    │       ├── res_string.ml
    │       ├── res_token.ml
    │       ├── res_utf8.ml
    │       └── res_utf8.mli
├── docs
    ├── JSXV4.md
    ├── Syntax.md
    ├── TYPING.adoc
    ├── changelog
    │   └── CHANGELOG_BS.md
    └── docson
    │   └── build-schema.json
├── dune
├── dune-project
├── lib
    ├── es6
    │   ├── Belt.js
    │   ├── Belt_Array.js
    │   ├── Belt_Float.js
    │   ├── Belt_HashMap.js
    │   ├── Belt_HashMapInt.js
    │   ├── Belt_HashMapString.js
    │   ├── Belt_HashSet.js
    │   ├── Belt_HashSetInt.js
    │   ├── Belt_HashSetString.js
    │   ├── Belt_Id.js
    │   ├── Belt_Int.js
    │   ├── Belt_List.js
    │   ├── Belt_Map.js
    │   ├── Belt_MapDict.js
    │   ├── Belt_MapInt.js
    │   ├── Belt_MapString.js
    │   ├── Belt_MutableMap.js
    │   ├── Belt_MutableMapInt.js
    │   ├── Belt_MutableMapString.js
    │   ├── Belt_MutableQueue.js
    │   ├── Belt_MutableSet.js
    │   ├── Belt_MutableSetInt.js
    │   ├── Belt_MutableSetString.js
    │   ├── Belt_MutableStack.js
    │   ├── Belt_Option.js
    │   ├── Belt_Range.js
    │   ├── Belt_Result.js
    │   ├── Belt_Set.js
    │   ├── Belt_SetDict.js
    │   ├── Belt_SetInt.js
    │   ├── Belt_SetString.js
    │   ├── Belt_SortArray.js
    │   ├── Belt_SortArrayInt.js
    │   ├── Belt_SortArrayString.js
    │   ├── Belt_internalAVLset.js
    │   ├── Belt_internalAVLtree.js
    │   ├── Belt_internalBuckets.js
    │   ├── Belt_internalBucketsType.js
    │   ├── Belt_internalMapInt.js
    │   ├── Belt_internalMapString.js
    │   ├── Belt_internalSetBuckets.js
    │   ├── Belt_internalSetInt.js
    │   ├── Belt_internalSetString.js
    │   ├── Char.js
    │   ├── Dom.js
    │   ├── Dom_storage.js
    │   ├── Dom_storage2.js
    │   ├── Js.js
    │   ├── Js_OO.js
    │   ├── Js_array.js
    │   ├── Js_array2.js
    │   ├── Js_bigint.js
    │   ├── Js_blob.js
    │   ├── Js_console.js
    │   ├── Js_date.js
    │   ├── Js_dict.js
    │   ├── Js_extern.js
    │   ├── Js_file.js
    │   ├── Js_float.js
    │   ├── Js_global.js
    │   ├── Js_int.js
    │   ├── Js_json.js
    │   ├── Js_map.js
    │   ├── Js_math.js
    │   ├── Js_null.js
    │   ├── Js_null_undefined.js
    │   ├── Js_obj.js
    │   ├── Js_option.js
    │   ├── Js_promise.js
    │   ├── Js_promise2.js
    │   ├── Js_re.js
    │   ├── Js_result.js
    │   ├── Js_set.js
    │   ├── Js_string.js
    │   ├── Js_string2.js
    │   ├── Js_typed_array.js
    │   ├── Js_typed_array2.js
    │   ├── Js_types.js
    │   ├── Js_undefined.js
    │   ├── Js_weakmap.js
    │   ├── Js_weakset.js
    │   ├── Jsx.js
    │   ├── JsxDOM.js
    │   ├── JsxDOMStyle.js
    │   ├── JsxEvent.js
    │   ├── Obj.js
    │   ├── Pervasives.js
    │   ├── Primitive_array.js
    │   ├── Primitive_array_extern.js
    │   ├── Primitive_bigint.js
    │   ├── Primitive_bool.js
    │   ├── Primitive_char_extern.js
    │   ├── Primitive_curry.js
    │   ├── Primitive_dict.js
    │   ├── Primitive_exceptions.js
    │   ├── Primitive_float.js
    │   ├── Primitive_float_extern.js
    │   ├── Primitive_hash.js
    │   ├── Primitive_int.js
    │   ├── Primitive_int_extern.js
    │   ├── Primitive_js_extern.js
    │   ├── Primitive_module.js
    │   ├── Primitive_object.js
    │   ├── Primitive_object_extern.js
    │   ├── Primitive_option.js
    │   ├── Primitive_promise.js
    │   ├── Primitive_string.js
    │   ├── Primitive_string_extern.js
    │   ├── Primitive_util.js
    │   ├── RescriptTools.js
    │   ├── RescriptTools_Docgen.js
    │   ├── Stdlib.js
    │   ├── Stdlib_Array.js
    │   ├── Stdlib_ArrayBuffer.js
    │   ├── Stdlib_AsyncIterator.js
    │   ├── Stdlib_BigInt.js
    │   ├── Stdlib_BigInt64Array.js
    │   ├── Stdlib_BigUint64Array.js
    │   ├── Stdlib_Bool.js
    │   ├── Stdlib_Console.js
    │   ├── Stdlib_DataView.js
    │   ├── Stdlib_Date.js
    │   ├── Stdlib_Dict.js
    │   ├── Stdlib_Error.js
    │   ├── Stdlib_Exn.js
    │   ├── Stdlib_Float.js
    │   ├── Stdlib_Float32Array.js
    │   ├── Stdlib_Float64Array.js
    │   ├── Stdlib_Global.js
    │   ├── Stdlib_Int.js
    │   ├── Stdlib_Int16Array.js
    │   ├── Stdlib_Int32Array.js
    │   ├── Stdlib_Int8Array.js
    │   ├── Stdlib_Intl.js
    │   ├── Stdlib_Intl_Collator.js
    │   ├── Stdlib_Intl_Common.js
    │   ├── Stdlib_Intl_DateTimeFormat.js
    │   ├── Stdlib_Intl_ListFormat.js
    │   ├── Stdlib_Intl_Locale.js
    │   ├── Stdlib_Intl_NumberFormat.js
    │   ├── Stdlib_Intl_NumberFormat_Grouping.js
    │   ├── Stdlib_Intl_PluralRules.js
    │   ├── Stdlib_Intl_RelativeTimeFormat.js
    │   ├── Stdlib_Intl_Segmenter.js
    │   ├── Stdlib_Intl_Segments.js
    │   ├── Stdlib_Iterator.js
    │   ├── Stdlib_JSON.js
    │   ├── Stdlib_JsError.js
    │   ├── Stdlib_JsExn.js
    │   ├── Stdlib_Lazy.js
    │   ├── Stdlib_List.js
    │   ├── Stdlib_Map.js
    │   ├── Stdlib_Math.js
    │   ├── Stdlib_Null.js
    │   ├── Stdlib_Nullable.js
    │   ├── Stdlib_Object.js
    │   ├── Stdlib_Option.js
    │   ├── Stdlib_Ordering.js
    │   ├── Stdlib_Pair.js
    │   ├── Stdlib_Promise.js
    │   ├── Stdlib_RegExp.js
    │   ├── Stdlib_Result.js
    │   ├── Stdlib_Set.js
    │   ├── Stdlib_String.js
    │   ├── Stdlib_Symbol.js
    │   ├── Stdlib_Type.js
    │   ├── Stdlib_TypedArray.js
    │   ├── Stdlib_Uint16Array.js
    │   ├── Stdlib_Uint32Array.js
    │   ├── Stdlib_Uint8Array.js
    │   ├── Stdlib_Uint8ClampedArray.js
    │   ├── Stdlib_WeakMap.js
    │   ├── Stdlib_WeakSet.js
    │   └── package.json
    ├── js
    │   ├── Belt.js
    │   ├── Belt_Array.js
    │   ├── Belt_Float.js
    │   ├── Belt_HashMap.js
    │   ├── Belt_HashMapInt.js
    │   ├── Belt_HashMapString.js
    │   ├── Belt_HashSet.js
    │   ├── Belt_HashSetInt.js
    │   ├── Belt_HashSetString.js
    │   ├── Belt_Id.js
    │   ├── Belt_Int.js
    │   ├── Belt_List.js
    │   ├── Belt_Map.js
    │   ├── Belt_MapDict.js
    │   ├── Belt_MapInt.js
    │   ├── Belt_MapString.js
    │   ├── Belt_MutableMap.js
    │   ├── Belt_MutableMapInt.js
    │   ├── Belt_MutableMapString.js
    │   ├── Belt_MutableQueue.js
    │   ├── Belt_MutableSet.js
    │   ├── Belt_MutableSetInt.js
    │   ├── Belt_MutableSetString.js
    │   ├── Belt_MutableStack.js
    │   ├── Belt_Option.js
    │   ├── Belt_Range.js
    │   ├── Belt_Result.js
    │   ├── Belt_Set.js
    │   ├── Belt_SetDict.js
    │   ├── Belt_SetInt.js
    │   ├── Belt_SetString.js
    │   ├── Belt_SortArray.js
    │   ├── Belt_SortArrayInt.js
    │   ├── Belt_SortArrayString.js
    │   ├── Belt_internalAVLset.js
    │   ├── Belt_internalAVLtree.js
    │   ├── Belt_internalBuckets.js
    │   ├── Belt_internalBucketsType.js
    │   ├── Belt_internalMapInt.js
    │   ├── Belt_internalMapString.js
    │   ├── Belt_internalSetBuckets.js
    │   ├── Belt_internalSetInt.js
    │   ├── Belt_internalSetString.js
    │   ├── Char.js
    │   ├── Dom.js
    │   ├── Dom_storage.js
    │   ├── Dom_storage2.js
    │   ├── Js.js
    │   ├── Js_OO.js
    │   ├── Js_array.js
    │   ├── Js_array2.js
    │   ├── Js_bigint.js
    │   ├── Js_blob.js
    │   ├── Js_console.js
    │   ├── Js_date.js
    │   ├── Js_dict.js
    │   ├── Js_extern.js
    │   ├── Js_file.js
    │   ├── Js_float.js
    │   ├── Js_global.js
    │   ├── Js_int.js
    │   ├── Js_json.js
    │   ├── Js_map.js
    │   ├── Js_math.js
    │   ├── Js_null.js
    │   ├── Js_null_undefined.js
    │   ├── Js_obj.js
    │   ├── Js_option.js
    │   ├── Js_promise.js
    │   ├── Js_promise2.js
    │   ├── Js_re.js
    │   ├── Js_result.js
    │   ├── Js_set.js
    │   ├── Js_string.js
    │   ├── Js_string2.js
    │   ├── Js_typed_array.js
    │   ├── Js_typed_array2.js
    │   ├── Js_types.js
    │   ├── Js_undefined.js
    │   ├── Js_weakmap.js
    │   ├── Js_weakset.js
    │   ├── Jsx.js
    │   ├── JsxDOM.js
    │   ├── JsxDOMStyle.js
    │   ├── JsxEvent.js
    │   ├── Obj.js
    │   ├── Pervasives.js
    │   ├── Primitive_array.js
    │   ├── Primitive_array_extern.js
    │   ├── Primitive_bigint.js
    │   ├── Primitive_bool.js
    │   ├── Primitive_char_extern.js
    │   ├── Primitive_curry.js
    │   ├── Primitive_dict.js
    │   ├── Primitive_exceptions.js
    │   ├── Primitive_float.js
    │   ├── Primitive_float_extern.js
    │   ├── Primitive_hash.js
    │   ├── Primitive_int.js
    │   ├── Primitive_int_extern.js
    │   ├── Primitive_js_extern.js
    │   ├── Primitive_module.js
    │   ├── Primitive_object.js
    │   ├── Primitive_object_extern.js
    │   ├── Primitive_option.js
    │   ├── Primitive_promise.js
    │   ├── Primitive_string.js
    │   ├── Primitive_string_extern.js
    │   ├── Primitive_util.js
    │   ├── RescriptTools.js
    │   ├── RescriptTools_Docgen.js
    │   ├── Stdlib.js
    │   ├── Stdlib_Array.js
    │   ├── Stdlib_ArrayBuffer.js
    │   ├── Stdlib_AsyncIterator.js
    │   ├── Stdlib_BigInt.js
    │   ├── Stdlib_BigInt64Array.js
    │   ├── Stdlib_BigUint64Array.js
    │   ├── Stdlib_Bool.js
    │   ├── Stdlib_Console.js
    │   ├── Stdlib_DataView.js
    │   ├── Stdlib_Date.js
    │   ├── Stdlib_Dict.js
    │   ├── Stdlib_Error.js
    │   ├── Stdlib_Exn.js
    │   ├── Stdlib_Float.js
    │   ├── Stdlib_Float32Array.js
    │   ├── Stdlib_Float64Array.js
    │   ├── Stdlib_Global.js
    │   ├── Stdlib_Int.js
    │   ├── Stdlib_Int16Array.js
    │   ├── Stdlib_Int32Array.js
    │   ├── Stdlib_Int8Array.js
    │   ├── Stdlib_Intl.js
    │   ├── Stdlib_Intl_Collator.js
    │   ├── Stdlib_Intl_Common.js
    │   ├── Stdlib_Intl_DateTimeFormat.js
    │   ├── Stdlib_Intl_ListFormat.js
    │   ├── Stdlib_Intl_Locale.js
    │   ├── Stdlib_Intl_NumberFormat.js
    │   ├── Stdlib_Intl_NumberFormat_Grouping.js
    │   ├── Stdlib_Intl_PluralRules.js
    │   ├── Stdlib_Intl_RelativeTimeFormat.js
    │   ├── Stdlib_Intl_Segmenter.js
    │   ├── Stdlib_Intl_Segments.js
    │   ├── Stdlib_Iterator.js
    │   ├── Stdlib_JSON.js
    │   ├── Stdlib_JsError.js
    │   ├── Stdlib_JsExn.js
    │   ├── Stdlib_Lazy.js
    │   ├── Stdlib_List.js
    │   ├── Stdlib_Map.js
    │   ├── Stdlib_Math.js
    │   ├── Stdlib_Null.js
    │   ├── Stdlib_Nullable.js
    │   ├── Stdlib_Object.js
    │   ├── Stdlib_Option.js
    │   ├── Stdlib_Ordering.js
    │   ├── Stdlib_Pair.js
    │   ├── Stdlib_Promise.js
    │   ├── Stdlib_RegExp.js
    │   ├── Stdlib_Result.js
    │   ├── Stdlib_Set.js
    │   ├── Stdlib_String.js
    │   ├── Stdlib_Symbol.js
    │   ├── Stdlib_Type.js
    │   ├── Stdlib_TypedArray.js
    │   ├── Stdlib_Uint16Array.js
    │   ├── Stdlib_Uint32Array.js
    │   ├── Stdlib_Uint8Array.js
    │   ├── Stdlib_Uint8ClampedArray.js
    │   ├── Stdlib_WeakMap.js
    │   └── Stdlib_WeakSet.js
    └── minisocket.js
├── lib_dev
    ├── README.md
    ├── paths.js
    ├── process.js
    └── utils.js
├── ninja
    ├── .clang-format
    ├── .gitignore
    ├── COPYING
    ├── HACKING.md
    ├── README
    ├── bootstrap.py
    ├── configure.py
    ├── doc
    │   ├── README.md
    │   ├── dblatex.xsl
    │   ├── docbook.xsl
    │   ├── doxygen.config
    │   ├── manual.asciidoc
    │   └── style.css
    ├── misc
    │   ├── afl-fuzz-tokens
    │   │   ├── kw_build
    │   │   ├── kw_default
    │   │   ├── kw_include
    │   │   ├── kw_pool
    │   │   ├── kw_rule
    │   │   ├── kw_subninja
    │   │   ├── misc_a
    │   │   ├── misc_b
    │   │   ├── misc_colon
    │   │   ├── misc_cont
    │   │   ├── misc_dollar
    │   │   ├── misc_eq
    │   │   ├── misc_indent
    │   │   ├── misc_pipe
    │   │   ├── misc_pipepipe
    │   │   └── misc_space
    │   ├── afl-fuzz
    │   │   └── build.ninja
    │   ├── bash-completion
    │   ├── ci.py
    │   ├── inherited-fds.ninja
    │   ├── long-slow-build.ninja
    │   ├── measure.py
    │   ├── ninja-mode.el
    │   ├── ninja.vim
    │   ├── ninja_syntax.py
    │   ├── ninja_syntax_test.py
    │   ├── output_test.py
    │   ├── packaging
    │   │   ├── ninja.spec
    │   │   └── rpmbuild.sh
    │   ├── write_fake_manifests.py
    │   └── zsh-completion
    └── src
    │   ├── browse.cc
    │   ├── browse.h
    │   ├── browse.py
    │   ├── build.cc
    │   ├── build.h
    │   ├── build_log.cc
    │   ├── build_log.h
    │   ├── build_log_perftest.cc
    │   ├── build_log_test.cc
    │   ├── build_test.cc
    │   ├── canon_perftest.cc
    │   ├── clean.cc
    │   ├── clean.h
    │   ├── clean_test.cc
    │   ├── clparser.cc
    │   ├── clparser.h
    │   ├── clparser_perftest.cc
    │   ├── clparser_test.cc
    │   ├── debug_flags.cc
    │   ├── debug_flags.h
    │   ├── depfile_parser.cc
    │   ├── depfile_parser.h
    │   ├── depfile_parser.in.cc
    │   ├── depfile_parser_perftest.cc
    │   ├── depfile_parser_test.cc
    │   ├── deps_log.cc
    │   ├── deps_log.h
    │   ├── deps_log_test.cc
    │   ├── disk_interface.cc
    │   ├── disk_interface.h
    │   ├── disk_interface_test.cc
    │   ├── dyndep.cc
    │   ├── dyndep.h
    │   ├── dyndep_parser.cc
    │   ├── dyndep_parser.h
    │   ├── dyndep_parser_test.cc
    │   ├── edit_distance.cc
    │   ├── edit_distance.h
    │   ├── edit_distance_test.cc
    │   ├── eval_env.cc
    │   ├── eval_env.h
    │   ├── exit_status.h
    │   ├── gen_doxygen_mainpage.sh
    │   ├── getopt.c
    │   ├── getopt.h
    │   ├── graph.cc
    │   ├── graph.h
    │   ├── graph_test.cc
    │   ├── graphviz.cc
    │   ├── graphviz.h
    │   ├── hash_collision_bench.cc
    │   ├── hash_map.h
    │   ├── includes_normalize-win32.cc
    │   ├── includes_normalize.h
    │   ├── includes_normalize_test.cc
    │   ├── inline.sh
    │   ├── lexer.cc
    │   ├── lexer.h
    │   ├── lexer.in.cc
    │   ├── lexer_test.cc
    │   ├── line_printer.cc
    │   ├── line_printer.h
    │   ├── manifest_parser.cc
    │   ├── manifest_parser.h
    │   ├── manifest_parser_perftest.cc
    │   ├── manifest_parser_test.cc
    │   ├── metrics.cc
    │   ├── metrics.h
    │   ├── minidump-win32.cc
    │   ├── msvc_helper-win32.cc
    │   ├── msvc_helper.h
    │   ├── msvc_helper_main-win32.cc
    │   ├── msvc_helper_test.cc
    │   ├── ninja.cc
    │   ├── ninja_test.cc
    │   ├── parser.cc
    │   ├── parser.h
    │   ├── state.cc
    │   ├── state.h
    │   ├── state_test.cc
    │   ├── string_piece.h
    │   ├── string_piece_util.cc
    │   ├── string_piece_util.h
    │   ├── string_piece_util_test.cc
    │   ├── subprocess-posix.cc
    │   ├── subprocess-win32.cc
    │   ├── subprocess.h
    │   ├── subprocess_test.cc
    │   ├── test.cc
    │   ├── test.h
    │   ├── timestamp.h
    │   ├── util.cc
    │   ├── util.h
    │   ├── util_test.cc
    │   ├── version.cc
    │   ├── version.h
    │   └── win32port.h
├── package.json
├── packages
    ├── @rescript
    │   ├── darwin-arm64
    │   │   ├── bin.d.ts
    │   │   ├── bin.js
    │   │   ├── bin
    │   │   │   └── .gitkeep
    │   │   └── package.json
    │   ├── darwin-x64
    │   │   ├── bin.d.ts
    │   │   ├── bin.js
    │   │   ├── bin
    │   │   │   └── .gitkeep
    │   │   └── package.json
    │   ├── linux-arm64
    │   │   ├── bin.d.ts
    │   │   ├── bin.js
    │   │   ├── bin
    │   │   │   └── .gitkeep
    │   │   └── package.json
    │   ├── linux-x64
    │   │   ├── bin.d.ts
    │   │   ├── bin.js
    │   │   ├── bin
    │   │   │   └── .gitkeep
    │   │   └── package.json
    │   └── win32-x64
    │   │   ├── bin.d.ts
    │   │   ├── bin.js
    │   │   ├── bin
    │   │       └── .gitkeep
    │   │   └── package.json
    ├── artifacts.txt
    ├── playground
    │   ├── .gitignore
    │   ├── README.md
    │   ├── package.json
    │   ├── playground_test.cjs
    │   ├── rescript.json
    │   ├── rollup.config.mjs
    │   ├── scripts
    │   │   ├── common.mjs
    │   │   ├── generate_cmijs.mjs
    │   │   └── upload_bundle.mjs
    │   ├── src
    │   │   └── App.res
    │   └── tsconfig.json
    └── std
    │   ├── .gitignore
    │   ├── COPYING
    │   ├── COPYING.LESSER
    │   ├── LICENSE
    │   ├── README.md
    │   └── package.json
├── rescript.opam
├── rescript.opam.template
├── rewatch
    ├── .cargo
    │   └── config.toml
    ├── .gitignore
    ├── Cargo.lock
    ├── Cargo.toml
    ├── CompilerConfigurationSpec.md
    ├── rewatch.cmd
    ├── rust-toolchain.toml
    ├── rustfmt.toml
    ├── src
    │   ├── build.rs
    │   ├── build
    │   │   ├── build_types.rs
    │   │   ├── clean.rs
    │   │   ├── compile.rs
    │   │   ├── compile
    │   │   │   └── dependency_cycle.rs
    │   │   ├── deps.rs
    │   │   ├── logs.rs
    │   │   ├── namespaces.rs
    │   │   ├── packages.rs
    │   │   ├── parse.rs
    │   │   └── read_compile_state.rs
    │   ├── cli.rs
    │   ├── cmd.rs
    │   ├── config.rs
    │   ├── helpers.rs
    │   ├── lib.rs
    │   ├── lock.rs
    │   ├── main.rs
    │   ├── queue.rs
    │   ├── sourcedirs.rs
    │   └── watcher.rs
    ├── testrepo
    │   ├── .gitignore
    │   ├── bsconfig.json
    │   ├── package.json
    │   ├── packages
    │   │   ├── compiled-by-legacy
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   └── src
    │   │   │   │   ├── Main.mjs
    │   │   │   │   ├── Main.res
    │   │   │   │   └── Main.res.js
    │   │   ├── dep01
    │   │   │   ├── README.md
    │   │   │   ├── bsconfig.json
    │   │   │   ├── package.json
    │   │   │   └── src
    │   │   │   │   ├── Demo.bs.js
    │   │   │   │   ├── Dep01.mjs
    │   │   │   │   └── Dep01.res
    │   │   ├── dep02
    │   │   │   ├── README.md
    │   │   │   ├── bsconfig.json
    │   │   │   ├── package.json
    │   │   │   └── src
    │   │   │   │   ├── Array.mjs
    │   │   │   │   ├── Array.res
    │   │   │   │   ├── Dep02.mjs
    │   │   │   │   └── Dep02.res
    │   │   ├── file-casing
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   └── src
    │   │   │   │   ├── Consume.mjs
    │   │   │   │   ├── Consume.res
    │   │   │   │   ├── produce.mjs
    │   │   │   │   └── produce.res
    │   │   ├── main
    │   │   │   ├── README.md
    │   │   │   ├── bsconfig.json
    │   │   │   ├── package.json
    │   │   │   └── src
    │   │   │   │   ├── Demo.bs.js
    │   │   │   │   ├── InternalDep.mjs
    │   │   │   │   ├── InternalDep.res
    │   │   │   │   ├── Main.mjs
    │   │   │   │   ├── Main.res
    │   │   │   │   ├── ModuleWithInterface.mjs
    │   │   │   │   ├── ModuleWithInterface.res
    │   │   │   │   ├── ModuleWithInterface.resi
    │   │   │   │   └── output.txt
    │   │   ├── namespace-casing
    │   │   │   ├── bsconfig.json
    │   │   │   ├── package.json
    │   │   │   └── src
    │   │   │   │   ├── Consume.mjs
    │   │   │   │   ├── Consume.res
    │   │   │   │   ├── Produce.mjs
    │   │   │   │   └── Produce.res
    │   │   ├── new-namespace
    │   │   │   ├── bsconfig.json
    │   │   │   ├── package.json
    │   │   │   └── src
    │   │   │   │   ├── NS.mjs
    │   │   │   │   ├── NS.res
    │   │   │   │   ├── NS_alias.mjs
    │   │   │   │   ├── NS_alias.res
    │   │   │   │   ├── Other_module.mjs
    │   │   │   │   └── Other_module.res
    │   │   └── with-dev-deps
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   ├── src
    │   │   │       ├── FileToTest.mjs
    │   │   │       └── FileToTest.res
    │   │   │   └── test
    │   │   │       └── FileToTest_test.res
    │   ├── src
    │   │   ├── Test.mjs
    │   │   └── Test.res
    │   └── yarn.lock
    └── tests
    │   ├── compile.sh
    │   ├── legacy-utils.sh
    │   ├── legacy.sh
    │   ├── lib
    │       └── rewatch.lock
    │   ├── lock.sh
    │   ├── snapshots
    │       ├── dependency-cycle.txt
    │       ├── remove-file.txt
    │       ├── rename-file-internal-dep-namespace.txt
    │       ├── rename-file-internal-dep.txt
    │       ├── rename-file-with-interface.txt
    │       ├── rename-file.txt
    │       └── rename-interface-file.txt
    │   ├── suffix.sh
    │   ├── suite-ci.sh
    │   ├── suite.sh
    │   ├── utils.sh
    │   └── watch.sh
├── runtime
    ├── .gitignore
    ├── Belt.res
    ├── Belt_Array.res
    ├── Belt_Array.resi
    ├── Belt_Float.res
    ├── Belt_Float.resi
    ├── Belt_HashMap.res
    ├── Belt_HashMap.resi
    ├── Belt_HashMapInt.res
    ├── Belt_HashMapInt.resi
    ├── Belt_HashMapString.res
    ├── Belt_HashMapString.resi
    ├── Belt_HashSet.res
    ├── Belt_HashSet.resi
    ├── Belt_HashSetInt.res
    ├── Belt_HashSetInt.resi
    ├── Belt_HashSetString.res
    ├── Belt_HashSetString.resi
    ├── Belt_Id.res
    ├── Belt_Id.resi
    ├── Belt_Int.res
    ├── Belt_Int.resi
    ├── Belt_List.res
    ├── Belt_List.resi
    ├── Belt_Map.res
    ├── Belt_Map.resi
    ├── Belt_MapDict.res
    ├── Belt_MapDict.resi
    ├── Belt_MapInt.res
    ├── Belt_MapInt.resi
    ├── Belt_MapString.res
    ├── Belt_MapString.resi
    ├── Belt_MutableMap.res
    ├── Belt_MutableMap.resi
    ├── Belt_MutableMapInt.res
    ├── Belt_MutableMapInt.resi
    ├── Belt_MutableMapString.res
    ├── Belt_MutableMapString.resi
    ├── Belt_MutableQueue.res
    ├── Belt_MutableQueue.resi
    ├── Belt_MutableSet.res
    ├── Belt_MutableSet.resi
    ├── Belt_MutableSetInt.res
    ├── Belt_MutableSetInt.resi
    ├── Belt_MutableSetString.res
    ├── Belt_MutableSetString.resi
    ├── Belt_MutableStack.res
    ├── Belt_MutableStack.resi
    ├── Belt_Option.res
    ├── Belt_Option.resi
    ├── Belt_Range.res
    ├── Belt_Range.resi
    ├── Belt_Result.res
    ├── Belt_Result.resi
    ├── Belt_Set.res
    ├── Belt_Set.resi
    ├── Belt_SetDict.res
    ├── Belt_SetDict.resi
    ├── Belt_SetInt.res
    ├── Belt_SetInt.resi
    ├── Belt_SetString.res
    ├── Belt_SetString.resi
    ├── Belt_SortArray.res
    ├── Belt_SortArray.resi
    ├── Belt_SortArrayInt.res
    ├── Belt_SortArrayInt.resi
    ├── Belt_SortArrayString.res
    ├── Belt_SortArrayString.resi
    ├── Belt_internalAVLset.res
    ├── Belt_internalAVLset.resi
    ├── Belt_internalAVLtree.res
    ├── Belt_internalAVLtree.resi
    ├── Belt_internalBuckets.res
    ├── Belt_internalBuckets.resi
    ├── Belt_internalBucketsType.res
    ├── Belt_internalBucketsType.resi
    ├── Belt_internalMapInt.res
    ├── Belt_internalMapString.res
    ├── Belt_internalSetBuckets.res
    ├── Belt_internalSetBuckets.resi
    ├── Belt_internalSetInt.res
    ├── Belt_internalSetString.res
    ├── Char.res
    ├── Char.resi
    ├── Dom.res
    ├── Dom_storage.res
    ├── Dom_storage2.res
    ├── Js.res
    ├── Js_OO.res
    ├── Js_array.res
    ├── Js_array2.res
    ├── Js_bigint.res
    ├── Js_blob.res
    ├── Js_console.res
    ├── Js_date.res
    ├── Js_dict.res
    ├── Js_dict.resi
    ├── Js_extern.res
    ├── Js_file.res
    ├── Js_float.res
    ├── Js_global.res
    ├── Js_int.res
    ├── Js_json.res
    ├── Js_json.resi
    ├── Js_map.res
    ├── Js_math.res
    ├── Js_null.res
    ├── Js_null.resi
    ├── Js_null_undefined.res
    ├── Js_null_undefined.resi
    ├── Js_obj.res
    ├── Js_option.res
    ├── Js_option.resi
    ├── Js_promise.res
    ├── Js_promise2.res
    ├── Js_re.res
    ├── Js_result.res
    ├── Js_result.resi
    ├── Js_set.res
    ├── Js_string.res
    ├── Js_string2.res
    ├── Js_typed_array.res
    ├── Js_typed_array2.res
    ├── Js_types.res
    ├── Js_types.resi
    ├── Js_undefined.res
    ├── Js_undefined.resi
    ├── Js_weakmap.res
    ├── Js_weakset.res
    ├── Jsx.res
    ├── JsxDOM.res
    ├── JsxDOMStyle.res
    ├── JsxEvent.res
    ├── Obj.res
    ├── Pervasives.res
    ├── Primitive_array.res
    ├── Primitive_array_extern.res
    ├── Primitive_bigint.res
    ├── Primitive_bool.res
    ├── Primitive_char_extern.res
    ├── Primitive_curry.res
    ├── Primitive_curry.resi
    ├── Primitive_dict.res
    ├── Primitive_exceptions.res
    ├── Primitive_exceptions.resi
    ├── Primitive_float.res
    ├── Primitive_float_extern.res
    ├── Primitive_hash.res
    ├── Primitive_hash.resi
    ├── Primitive_int.res
    ├── Primitive_int_extern.res
    ├── Primitive_js_extern.res
    ├── Primitive_module.res
    ├── Primitive_module.resi
    ├── Primitive_object.res
    ├── Primitive_object.resi
    ├── Primitive_object_extern.res
    ├── Primitive_option.res
    ├── Primitive_option.resi
    ├── Primitive_promise.res
    ├── Primitive_string.res
    ├── Primitive_string_extern.res
    ├── Primitive_util.res
    ├── RescriptTools.res
    ├── RescriptTools_Docgen.res
    ├── RescriptTools_Docgen.resi
    ├── Stdlib.res
    ├── Stdlib_Array.res
    ├── Stdlib_Array.resi
    ├── Stdlib_ArrayBuffer.res
    ├── Stdlib_ArrayBuffer.resi
    ├── Stdlib_AsyncIterator.res
    ├── Stdlib_AsyncIterator.resi
    ├── Stdlib_BigInt.res
    ├── Stdlib_BigInt.resi
    ├── Stdlib_BigInt64Array.res
    ├── Stdlib_BigUint64Array.res
    ├── Stdlib_Bool.res
    ├── Stdlib_Bool.resi
    ├── Stdlib_Console.res
    ├── Stdlib_Console.resi
    ├── Stdlib_DataView.res
    ├── Stdlib_Date.res
    ├── Stdlib_Date.resi
    ├── Stdlib_Dict.res
    ├── Stdlib_Dict.resi
    ├── Stdlib_Error.res
    ├── Stdlib_Error.resi
    ├── Stdlib_Exn.res
    ├── Stdlib_Exn.resi
    ├── Stdlib_Float.res
    ├── Stdlib_Float.resi
    ├── Stdlib_Float32Array.res
    ├── Stdlib_Float64Array.res
    ├── Stdlib_Global.res
    ├── Stdlib_Global.resi
    ├── Stdlib_Int.res
    ├── Stdlib_Int.resi
    ├── Stdlib_Int16Array.res
    ├── Stdlib_Int32Array.res
    ├── Stdlib_Int8Array.res
    ├── Stdlib_Intl.res
    ├── Stdlib_Intl_Collator.res
    ├── Stdlib_Intl_Common.res
    ├── Stdlib_Intl_DateTimeFormat.res
    ├── Stdlib_Intl_ListFormat.res
    ├── Stdlib_Intl_Locale.res
    ├── Stdlib_Intl_NumberFormat.res
    ├── Stdlib_Intl_NumberFormat_Grouping.res
    ├── Stdlib_Intl_PluralRules.res
    ├── Stdlib_Intl_RelativeTimeFormat.res
    ├── Stdlib_Intl_Segmenter.res
    ├── Stdlib_Intl_Segments.res
    ├── Stdlib_Iterator.res
    ├── Stdlib_Iterator.resi
    ├── Stdlib_JSON.res
    ├── Stdlib_JSON.resi
    ├── Stdlib_JsError.res
    ├── Stdlib_JsError.resi
    ├── Stdlib_JsExn.res
    ├── Stdlib_JsExn.resi
    ├── Stdlib_Lazy.res
    ├── Stdlib_Lazy.resi
    ├── Stdlib_List.res
    ├── Stdlib_List.resi
    ├── Stdlib_Map.res
    ├── Stdlib_Map.resi
    ├── Stdlib_Math.res
    ├── Stdlib_Math.resi
    ├── Stdlib_Null.res
    ├── Stdlib_Null.resi
    ├── Stdlib_Nullable.res
    ├── Stdlib_Nullable.resi
    ├── Stdlib_Object.res
    ├── Stdlib_Option.res
    ├── Stdlib_Option.resi
    ├── Stdlib_Ordering.res
    ├── Stdlib_Pair.res
    ├── Stdlib_Promise.res
    ├── Stdlib_Promise.resi
    ├── Stdlib_RegExp.res
    ├── Stdlib_RegExp.resi
    ├── Stdlib_Result.res
    ├── Stdlib_Result.resi
    ├── Stdlib_Set.res
    ├── Stdlib_Set.resi
    ├── Stdlib_String.res
    ├── Stdlib_String.resi
    ├── Stdlib_Symbol.res
    ├── Stdlib_Symbol.resi
    ├── Stdlib_Type.res
    ├── Stdlib_Type.resi
    ├── Stdlib_TypedArray.res
    ├── Stdlib_Uint16Array.res
    ├── Stdlib_Uint32Array.res
    ├── Stdlib_Uint8Array.res
    ├── Stdlib_Uint8ClampedArray.res
    ├── Stdlib_WeakMap.res
    ├── Stdlib_WeakSet.res
    ├── cppo
    │   ├── belt_Set.res.cppo
    │   ├── belt_Set.resi.cppo
    │   ├── hashmap.res.cppo
    │   ├── hashmap.resi.cppo
    │   ├── hashset.res.cppo
    │   ├── hashset.resi.cppo
    │   ├── internal_map.res.cppo
    │   ├── internal_set.res.cppo
    │   ├── map.res.cppo
    │   ├── map.resi.cppo
    │   ├── mapm.res.cppo
    │   ├── mapm.resi.cppo
    │   ├── setm.res.cppo
    │   ├── setm.resi.cppo
    │   ├── sort.res.cppo
    │   └── sort.resi.cppo
    ├── package.json
    └── rescript.json
├── scripts
    ├── buildNinjaBinary.js
    ├── buildRuntime.sh
    ├── buildRuntimeLegacy.sh
    ├── copyExes.js
    ├── cppo.js
    ├── format.sh
    ├── format_check.sh
    ├── npmPack.js
    ├── res
    │   ├── .gitignore
    │   ├── GenApiDocs.res
    │   ├── Semver.res
    │   ├── apiDocs
    │   │   └── .gitkeep
    │   ├── package.json
    │   └── rescript.json
    ├── test.js
    └── test_syntax.sh
├── tests
    ├── .gitignore
    ├── analysis_tests
    │   ├── Makefile
    │   ├── tests-generic-jsx-transform
    │   │   ├── Makefile
    │   │   ├── package.json
    │   │   ├── rescript.json
    │   │   ├── src
    │   │   │   ├── GenericJsx.res
    │   │   │   ├── GenericJsxCompletion.res
    │   │   │   └── expected
    │   │   │   │   ├── GenericJsx.res.txt
    │   │   │   │   └── GenericJsxCompletion.res.txt
    │   │   └── test.sh
    │   ├── tests-incremental-typechecking
    │   │   ├── Makefile
    │   │   ├── package.json
    │   │   ├── rescript.json
    │   │   ├── src
    │   │   │   ├── ConstructorCompletion__Json.res
    │   │   │   ├── ConstructorCompletion__Own.res
    │   │   │   └── expected
    │   │   │   │   ├── ConstructorCompletion__Json.res.txt
    │   │   │   │   └── ConstructorCompletion__Own.res.txt
    │   │   └── test.sh
    │   ├── tests-reanalyze
    │   │   ├── .gitignore
    │   │   ├── Makefile
    │   │   ├── deadcode
    │   │   │   ├── .gitignore
    │   │   │   ├── Makefile
    │   │   │   ├── expected
    │   │   │   │   ├── deadcode.txt
    │   │   │   │   └── exception.txt
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   ├── src
    │   │   │   │   ├── AutoAnnotate.res
    │   │   │   │   ├── BootloaderResource.res
    │   │   │   │   ├── BucklescriptAnnotations.res
    │   │   │   │   ├── ComponentAsProp.res
    │   │   │   │   ├── CreateErrorHandler1.res
    │   │   │   │   ├── CreateErrorHandler2.res
    │   │   │   │   ├── DeadCodeImplementation.res
    │   │   │   │   ├── DeadCodeInterface.res
    │   │   │   │   ├── DeadExn.res
    │   │   │   │   ├── DeadExn.resi
    │   │   │   │   ├── DeadRT.res
    │   │   │   │   ├── DeadRT.resi
    │   │   │   │   ├── DeadTest.res
    │   │   │   │   ├── DeadTestBlacklist.res
    │   │   │   │   ├── DeadTestWithInterface.res
    │   │   │   │   ├── DeadTestWithInterface.resi
    │   │   │   │   ├── DeadTypeTest.res
    │   │   │   │   ├── DeadTypeTest.resi
    │   │   │   │   ├── DeadValueTest.res
    │   │   │   │   ├── DeadValueTest.resi
    │   │   │   │   ├── Docstrings.res
    │   │   │   │   ├── DynamicallyLoadedComponent.res
    │   │   │   │   ├── EmptyArray.res
    │   │   │   │   ├── ErrorHandler.res
    │   │   │   │   ├── ErrorHandler.resi
    │   │   │   │   ├── EverythingLiveHere.res
    │   │   │   │   ├── FirstClassModules.res
    │   │   │   │   ├── FirstClassModulesInterface.res
    │   │   │   │   ├── FirstClassModulesInterface.resi
    │   │   │   │   ├── Hooks.res
    │   │   │   │   ├── IgnoreInterface.res
    │   │   │   │   ├── IgnoreInterface.resi
    │   │   │   │   ├── ImmutableArray.res
    │   │   │   │   ├── ImmutableArray.resi
    │   │   │   │   ├── ImportHookDefault.res
    │   │   │   │   ├── ImportHooks.res
    │   │   │   │   ├── ImportIndex.res
    │   │   │   │   ├── ImportJsValue.res
    │   │   │   │   ├── ImportMyBanner.res
    │   │   │   │   ├── InnerModuleTypes.res
    │   │   │   │   ├── InnerModuleTypes.resi
    │   │   │   │   ├── JSResource.res
    │   │   │   │   ├── JsxV4.res
    │   │   │   │   ├── LetPrivate.res
    │   │   │   │   ├── ModuleAliases.res
    │   │   │   │   ├── ModuleAliases2.res
    │   │   │   │   ├── ModuleExceptionBug.res
    │   │   │   │   ├── NestedModules.res
    │   │   │   │   ├── NestedModulesInSignature.res
    │   │   │   │   ├── NestedModulesInSignature.resi
    │   │   │   │   ├── Newsyntax.res
    │   │   │   │   ├── Newton.res
    │   │   │   │   ├── Opaque.res
    │   │   │   │   ├── OptArg.res
    │   │   │   │   ├── OptArg.resi
    │   │   │   │   ├── Records.res
    │   │   │   │   ├── References.res
    │   │   │   │   ├── RepeatedLabel.res
    │   │   │   │   ├── RequireCond.res
    │   │   │   │   ├── Shadow.res
    │   │   │   │   ├── TestDeadExn.res
    │   │   │   │   ├── TestEmitInnerModules.res
    │   │   │   │   ├── TestFirstClassModules.res
    │   │   │   │   ├── TestImmutableArray.res
    │   │   │   │   ├── TestImport.res
    │   │   │   │   ├── TestInnedModuleTypes.res
    │   │   │   │   ├── TestModuleAliases.res
    │   │   │   │   ├── TestOptArg.res
    │   │   │   │   ├── TestPromise.res
    │   │   │   │   ├── ToSuppress.res
    │   │   │   │   ├── TransitiveType1.res
    │   │   │   │   ├── TransitiveType2.res
    │   │   │   │   ├── TransitiveType3.res
    │   │   │   │   ├── Tuples.res
    │   │   │   │   ├── TypeParams1.res
    │   │   │   │   ├── TypeParams2.res
    │   │   │   │   ├── TypeParams3.res
    │   │   │   │   ├── Types.res
    │   │   │   │   ├── Unboxed.res
    │   │   │   │   ├── Uncurried.res
    │   │   │   │   ├── Unison.res
    │   │   │   │   ├── UseImportJsValue.res
    │   │   │   │   ├── Variants.res
    │   │   │   │   ├── VariantsWithPayload.res
    │   │   │   │   ├── exception
    │   │   │   │   │   ├── Arr.res
    │   │   │   │   │   ├── BeltTest.res
    │   │   │   │   │   ├── BsJson.res
    │   │   │   │   │   ├── Exn.res
    │   │   │   │   │   ├── ExnA.res
    │   │   │   │   │   ├── ExnB.res
    │   │   │   │   │   ├── ExportWithRename.res
    │   │   │   │   │   ├── ExternalTest.res
    │   │   │   │   │   ├── InnerModules.res
    │   │   │   │   │   ├── StdlibTest.res
    │   │   │   │   │   ├── TestInnerModules.res
    │   │   │   │   │   ├── TestYojson.res
    │   │   │   │   │   └── Yojson.res
    │   │   │   │   └── exportNestedValues.js
    │   │   │   └── test.sh
    │   │   └── termination
    │   │   │   ├── .gitignore
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── expected
    │   │   │       └── termination.txt
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   ├── src
    │   │   │       └── TestCyberTruck.res
    │   │   │   └── test.sh
    │   └── tests
    │   │   ├── Makefile
    │   │   ├── not_compiled
    │   │       ├── Diagnostics.res
    │   │       ├── DocTemplate.res
    │   │       ├── DocTemplate.resi
    │   │       └── expected
    │   │       │   ├── Diagnostics.res.txt
    │   │       │   ├── DocTemplate.res.txt
    │   │       │   └── DocTemplate.resi.txt
    │   │   ├── package.json
    │   │   ├── rescript.json
    │   │   ├── src
    │   │       ├── ArrayUtils.res
    │   │       ├── Auto.res
    │   │       ├── BrokenParserCases.res
    │   │       ├── CodeLens.res
    │   │       ├── Codemod.res
    │   │       ├── CompletableComponent.res
    │   │       ├── CompletePrioritize1.res
    │   │       ├── CompletePrioritize2.res
    │   │       ├── Completion.res
    │   │       ├── CompletionAttributes.res
    │   │       ├── CompletionConfiguredBuiltins.res
    │   │       ├── CompletionDicts.res
    │   │       ├── CompletionExpressions.res
    │   │       ├── CompletionFromModule.res
    │   │       ├── CompletionFromModule2.res
    │   │       ├── CompletionFunctionArguments.res
    │   │       ├── CompletionInferValues.res
    │   │       ├── CompletionJsx.res
    │   │       ├── CompletionJsxProps.res
    │   │       ├── CompletionMultipleEditorCompleteFrom.res
    │   │       ├── CompletionObjects.res
    │   │       ├── CompletionPattern.res
    │   │       ├── CompletionPipeChain.res
    │   │       ├── CompletionPipeProperty.res
    │   │       ├── CompletionPipeSubmodules.res
    │   │       ├── CompletionRegexp.res
    │   │       ├── CompletionResolve.res
    │   │       ├── CompletionSupport.res
    │   │       ├── CompletionSupport2.res
    │   │       ├── CompletionTaggedTemplate.res
    │   │       ├── CompletionTypeAnnotation.res
    │   │       ├── CompletionTypeT.res
    │   │       ├── Component.res
    │   │       ├── Component.resi
    │   │       ├── CreateInterface.res
    │   │       ├── Cross.res
    │   │       ├── Dce.res
    │   │       ├── Debug.res
    │   │       ├── Definition.res
    │   │       ├── DefinitionWithInterface.res
    │   │       ├── DefinitionWithInterface.resi
    │   │       ├── Destructuring.res
    │   │       ├── Div.res
    │   │       ├── DocComments.res
    │   │       ├── DocumentSymbol.res
    │   │       ├── DotPipeCompleteFromCurrentModule.res
    │   │       ├── DotPipeCompletionSpec.res
    │   │       ├── EnvCompletion.res
    │   │       ├── EnvCompletionOtherFile.res
    │   │       ├── ExhaustiveSwitch.res
    │   │       ├── Fastify.res
    │   │       ├── FastifyExt.res
    │   │       ├── Firebase.res
    │   │       ├── Fragment.res
    │   │       ├── Highlight.res
    │   │       ├── Hover.res
    │   │       ├── IncludeModuleCompletion.res
    │   │       ├── InlayHint.res
    │   │       ├── Jsx2.res
    │   │       ├── Jsx2.resi
    │   │       ├── JsxV4.res
    │   │       ├── LongIdentTest.res
    │   │       ├── ModuleStuff.res
    │   │       ├── NestedRecords.res
    │   │       ├── NestedRecordsHover.res
    │   │       ├── Objects.res
    │   │       ├── Patterns.res
    │   │       ├── PolyRec.res
    │   │       ├── QueryFile.res
    │   │       ├── RecModules.res
    │   │       ├── RecordCompletion.res
    │   │       ├── RecoveryOnProp.res
    │   │       ├── References.res
    │   │       ├── ReferencesWithInterface.res
    │   │       ├── ReferencesWithInterface.resi
    │   │       ├── Rename.res
    │   │       ├── RenameWithInterface.res
    │   │       ├── RenameWithInterface.resi
    │   │       ├── Reprod.res
    │   │       ├── Rxjs.res
    │   │       ├── RxjsCompletion.res
    │   │       ├── SchemaAssets.res
    │   │       ├── ShadowedBelt.res
    │   │       ├── SignatureHelp.res
    │   │       ├── Support.res
    │   │       ├── TableclothMap.res
    │   │       ├── TableclothMap.resi
    │   │       ├── TypeArgCtx.res
    │   │       ├── TypeAtPosCompletion.res
    │   │       ├── TypeDefinition.res
    │   │       ├── Xform.res
    │   │       ├── dce
    │   │       │   └── DceTest.res
    │   │       ├── expected
    │   │       │   ├── ArrayUtils.res.txt
    │   │       │   ├── Auto.res.txt
    │   │       │   ├── BrokenParserCases.res.txt
    │   │       │   ├── CodeLens.res.txt
    │   │       │   ├── Codemod.res.txt
    │   │       │   ├── CompletableComponent.res.txt
    │   │       │   ├── CompletePrioritize1.res.txt
    │   │       │   ├── CompletePrioritize2.res.txt
    │   │       │   ├── Completion.res.txt
    │   │       │   ├── CompletionAttributes.res.txt
    │   │       │   ├── CompletionConfiguredBuiltins.res.txt
    │   │       │   ├── CompletionDicts.res.txt
    │   │       │   ├── CompletionExpressions.res.txt
    │   │       │   ├── CompletionFromModule.res.txt
    │   │       │   ├── CompletionFromModule2.res.txt
    │   │       │   ├── CompletionFunctionArguments.res.txt
    │   │       │   ├── CompletionInferValues.res.txt
    │   │       │   ├── CompletionJsx.res.txt
    │   │       │   ├── CompletionJsxProps.res.txt
    │   │       │   ├── CompletionMultipleEditorCompleteFrom.res.txt
    │   │       │   ├── CompletionObjects.res.txt
    │   │       │   ├── CompletionPattern.res.txt
    │   │       │   ├── CompletionPipeChain.res.txt
    │   │       │   ├── CompletionPipeProperty.res.txt
    │   │       │   ├── CompletionPipeSubmodules.res.txt
    │   │       │   ├── CompletionRegexp.res.txt
    │   │       │   ├── CompletionResolve.res.txt
    │   │       │   ├── CompletionSupport.res.txt
    │   │       │   ├── CompletionSupport2.res.txt
    │   │       │   ├── CompletionTaggedTemplate.res.txt
    │   │       │   ├── CompletionTypeAnnotation.res.txt
    │   │       │   ├── CompletionTypeT.res.txt
    │   │       │   ├── Component.res.txt
    │   │       │   ├── Component.resi.txt
    │   │       │   ├── CreateInterface.res.txt
    │   │       │   ├── Cross.res.txt
    │   │       │   ├── Dce.res.txt
    │   │       │   ├── Debug.res.txt
    │   │       │   ├── Definition.res.txt
    │   │       │   ├── DefinitionWithInterface.res.txt
    │   │       │   ├── DefinitionWithInterface.resi.txt
    │   │       │   ├── Destructuring.res.txt
    │   │       │   ├── Div.res.txt
    │   │       │   ├── DocComments.res.txt
    │   │       │   ├── DocExtraction2.res.txt
    │   │       │   ├── DocExtraction2.resi.txt
    │   │       │   ├── DocExtractionRes.res.txt
    │   │       │   ├── DocumentSymbol.res.txt
    │   │       │   ├── DotPipeCompleteFromCurrentModule.res.txt
    │   │       │   ├── DotPipeCompletionSpec.res.txt
    │   │       │   ├── EnvCompletion.res.txt
    │   │       │   ├── EnvCompletionOtherFile.res.txt
    │   │       │   ├── ExhaustiveSwitch.res.txt
    │   │       │   ├── Fastify.res.txt
    │   │       │   ├── FastifyExt.res.txt
    │   │       │   ├── Firebase.res.txt
    │   │       │   ├── Fragment.res.txt
    │   │       │   ├── Highlight.res.txt
    │   │       │   ├── Hover.res.txt
    │   │       │   ├── IncludeModuleCompletion.res.txt
    │   │       │   ├── InlayHint.res.txt
    │   │       │   ├── Jsx2.res.txt
    │   │       │   ├── Jsx2.resi.txt
    │   │       │   ├── JsxV4.res.txt
    │   │       │   ├── LongIdentTest.res.txt
    │   │       │   ├── ModuleStuff.res.txt
    │   │       │   ├── NestedRecords.res.txt
    │   │       │   ├── NestedRecordsHover.res.txt
    │   │       │   ├── Nojaf.res.txt
    │   │       │   ├── Objects.res.txt
    │   │       │   ├── Patterns.res.txt
    │   │       │   ├── PolyRec.res.txt
    │   │       │   ├── QueryFile.res.txt
    │   │       │   ├── RecModules.res.txt
    │   │       │   ├── RecordCompletion.res.txt
    │   │       │   ├── RecoveryOnProp.res.txt
    │   │       │   ├── References.res.txt
    │   │       │   ├── ReferencesWithInterface.res.txt
    │   │       │   ├── ReferencesWithInterface.resi.txt
    │   │       │   ├── Rename.res.txt
    │   │       │   ├── RenameWithInterface.res.txt
    │   │       │   ├── RenameWithInterface.resi.txt
    │   │       │   ├── Reprod.res.txt
    │   │       │   ├── Rxjs.res.txt
    │   │       │   ├── RxjsCompletion.res.txt
    │   │       │   ├── SchemaAssets.res.txt
    │   │       │   ├── ShadowedBelt.res.txt
    │   │       │   ├── SignatureHelp.res.txt
    │   │       │   ├── Support.res.txt
    │   │       │   ├── TableclothMap.res.txt
    │   │       │   ├── TableclothMap.resi.txt
    │   │       │   ├── TypeArgCtx.res.txt
    │   │       │   ├── TypeAtPosCompletion.res.txt
    │   │       │   ├── TypeDefinition.res.txt
    │   │       │   ├── Xform.res.txt
    │   │       │   └── typeConstraint.res.txt
    │   │       ├── inner
    │   │       │   ├── ComponentInner.res
    │   │       │   ├── ComponentInner.resi
    │   │       │   ├── ReferencesInner.res
    │   │       │   └── ReferencesInner.resi
    │   │       ├── test.json
    │   │       ├── tst.js
    │   │       └── typeConstraint.res
    │   │   └── test.sh
    ├── build_tests
    │   ├── build_warn_as_error
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   └── Demo.res
    │   ├── case
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── Demo.resi
    │   │   │   └── demo.res
    │   ├── case2
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── X.res
    │   │   │   └── x.resi
    │   ├── case3
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── B01.res
    │   │   │   ├── B01.res.js
    │   │   │   ├── B01.resi
    │   │   │   ├── B02.res
    │   │   │   ├── B02.res.js
    │   │   │   ├── B03.res
    │   │   │   ├── B03.res.js
    │   │   │   ├── B04.res
    │   │   │   ├── B04.res.js
    │   │   │   ├── B04.resi
    │   │   │   ├── B05.res
    │   │   │   ├── B05.res.js
    │   │   │   ├── B05.resi
    │   │   │   ├── a01.res
    │   │   │   ├── a01.res.js
    │   │   │   ├── a01.resi
    │   │   │   ├── a02.res
    │   │   │   ├── a02.res.js
    │   │   │   ├── a03.res
    │   │   │   ├── a03.res.js
    │   │   │   ├── a04.res
    │   │   │   ├── a04.res.js
    │   │   │   ├── a04.resi
    │   │   │   ├── a05.res
    │   │   │   ├── a05.res.js
    │   │   │   ├── a05.resi
    │   │   │   ├── hello.res
    │   │   │   └── hello.res.js
    │   ├── cli_compile_status
    │   │   ├── input.js
    │   │   └── rescript.json
    │   ├── cli_help
    │   │   └── input.js
    │   ├── custom_namespace
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── demo.res
    │   │   │   └── demo.res.js
    │   ├── cycle
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── a.res
    │   │   │   └── b.res
    │   ├── cycle1
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── A.res
    │   │   │   └── A.resi
    │   ├── deprecated-package-specs
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   └── Index.res
    │   ├── devonly
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   ├── src
    │   │   │   ├── demo.res
    │   │   │   ├── demo.res.js
    │   │   │   ├── depdemo.res
    │   │   │   └── depdemo.res.js
    │   │   └── src2
    │   │   │   ├── hello.res
    │   │   │   ├── hello.res.js
    │   │   │   ├── hellodep.res
    │   │   │   └── hellodep.res.js
    │   ├── duplicated_symlinked_packages
    │   │   ├── .gitignore
    │   │   ├── README.md
    │   │   ├── a
    │   │   │   ├── node_modules
    │   │   │   │   ├── c
    │   │   │   │   └── z
    │   │   │   │   │   ├── package.json
    │   │   │   │   │   ├── rescript.json
    │   │   │   │   │   └── src
    │   │   │   │   │       └── .git_keep
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   └── src
    │   │   │   │   └── .git_keep
    │   │   ├── b
    │   │   │   ├── node_modules
    │   │   │   │   └── c
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   └── src
    │   │   │   │   └── .git_keep
    │   │   ├── c
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   └── src
    │   │   │   │   └── .git_keep
    │   │   ├── input.js
    │   │   ├── node_modules
    │   │   │   ├── a
    │   │   │   ├── b
    │   │   │   └── z
    │   │   │   │   ├── package.json
    │   │   │   │   ├── rescript.json
    │   │   │   │   └── src
    │   │   │   │       └── .git_keep
    │   │   ├── out.expected
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   └── .git_keep
    │   ├── exports
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   └── demo.res
    │   ├── gpr_978
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   └── gpr_978_module.res
    │   ├── hyphen2
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── y-src
    │   │   │   └── demo.res
    │   ├── in_source
    │   │   ├── input.js
    │   │   ├── input.sh
    │   │   └── rescript.json
    │   ├── install
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── Foo.res
    │   │   │   └── Foo.res.js
    │   ├── jsx_settings_inheritance
    │   │   ├── .gitignore
    │   │   ├── input.js
    │   │   ├── node_modules
    │   │   │   ├── @rescript
    │   │   │   │   └── react
    │   │   │   │   │   ├── rescript.json
    │   │   │   │   │   └── src
    │   │   │   │   │       ├── React.res
    │   │   │   │   │       ├── React.res.js
    │   │   │   │   │       ├── ReactDOM.res
    │   │   │   │   │       └── ReactDOM.res.js
    │   │   │   ├── a
    │   │   │   │   ├── package.json
    │   │   │   │   ├── rescript.json
    │   │   │   │   └── src
    │   │   │   │   │   ├── A.res
    │   │   │   │   │   └── A.res.js
    │   │   │   └── b
    │   │   │   │   ├── package.json
    │   │   │   │   ├── rescript.json
    │   │   │   │   └── src
    │   │   │   │       ├── B.res
    │   │   │   │       └── B.res.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── C.res
    │   │   │   └── C.res.js
    │   ├── nested
    │   │   ├── .gitignore
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── a0
    │   │   │       ├── a0_main.res
    │   │   │       └── a1
    │   │   │       │   └── A00_a1_main.res
    │   │   │   ├── b0
    │   │   │       ├── b0_main.res
    │   │   │       └── b1
    │   │   │       │   └── B00_b1_main.res
    │   │   │   ├── demo.res
    │   │   │   └── demo.resi
    │   ├── nnest
    │   │   ├── .gitignore
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── a0
    │   │   │       ├── a0_main.res
    │   │   │       └── a1
    │   │   │       │   └── A0_a1_main.res
    │   │   │   ├── b0
    │   │   │       ├── b0_main.res
    │   │   │       └── b1
    │   │   │       │   └── B0_b1_main.res
    │   │   │   └── demo.res
    │   ├── not_undefined_attribute
    │   │   ├── input.js
    │   │   ├── input.res
    │   │   └── rescript.json
    │   ├── ns
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── demo.js
    │   │   │   ├── demo.res
    │   │   │   ├── hello.js
    │   │   │   └── hello.res
    │   ├── post-build
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── demo.res
    │   │   │   └── hello.res
    │   ├── react_ppx
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── React.res
    │   │   │   ├── React.res.js
    │   │   │   ├── gpr_3695_test.res
    │   │   │   ├── gpr_3695_test.res.js
    │   │   │   ├── gpr_3987_test.res
    │   │   │   ├── gpr_3987_test.res.js
    │   │   │   ├── recursive_component_test.res
    │   │   │   └── recursive_component_test.res.js
    │   ├── rerror
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   ├── src
    │   │   │   └── demo.res
    │   │   └── tasks.json
    │   ├── scoped_ppx
    │   │   ├── .gitignore
    │   │   ├── input.js
    │   │   ├── node_modules
    │   │   │   └── @hongbo
    │   │   │   │   └── ppx1
    │   │   │   │       ├── package.json
    │   │   │   │       └── test.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   └── hello.res
    │   ├── super_errors
    │   │   ├── .gitignore
    │   │   ├── README.md
    │   │   ├── expected
    │   │   │   ├── DerivingAccessorsRecordParam.res.expected
    │   │   │   ├── ModuleAwait.res.expected
    │   │   │   ├── OptionalImplIntf.res.expected
    │   │   │   ├── OptionalInlineImplIntf.res.expected
    │   │   │   ├── RecordInclusion.res.expected
    │   │   │   ├── UncurriedArgsNotApplied.res.expected
    │   │   │   ├── UntaggedImplIntf.res.expected
    │   │   │   ├── UntaggedNonUnary1.res.expected
    │   │   │   ├── UntaggedNonUnary2.res.expected
    │   │   │   ├── UntaggedTupleAndArray.res.expected
    │   │   │   ├── UntaggedUnknown.res.expected
    │   │   │   ├── arity_mismatch.res.expected
    │   │   │   ├── arity_mismatch2.res.expected
    │   │   │   ├── arity_mismatch3.res.expected
    │   │   │   ├── arity_mismatch4.res.expected
    │   │   │   ├── array_item_type_mismatch.res.expected
    │   │   │   ├── array_literal_passed_to_tuple.res.expected
    │   │   │   ├── array_var_passed_to_tuple.res.expected
    │   │   │   ├── assert_condition.res.expected
    │   │   │   ├── await.res.expected
    │   │   │   ├── awaiting_non_promise.res.expected
    │   │   │   ├── bigint_match_literal.res.expected
    │   │   │   ├── c_for_u_in_c_mode.res.expected
    │   │   │   ├── c_for_u_in_u_mode.res.expected
    │   │   │   ├── collections.res.expected
    │   │   │   ├── comparison_operator.res.expected
    │   │   │   ├── component_invalid_prop.res.expected
    │   │   │   ├── component_missing_prop.res.expected
    │   │   │   ├── component_missing_prop_children.res.expected
    │   │   │   ├── component_missing_prop_test.res.expected
    │   │   │   ├── component_prop_passed_multiple_times.res.expected
    │   │   │   ├── curried_expected.res.expected
    │   │   │   ├── curry_in_uncurry.res.expected
    │   │   │   ├── dict_coercion.res.expected
    │   │   │   ├── dict_helper.res.expected
    │   │   │   ├── dict_inference.res.expected
    │   │   │   ├── dict_magic_field_on_non_dict.res.expected
    │   │   │   ├── dict_pattern_inference.res.expected
    │   │   │   ├── dict_pattern_inference_constrained.res.expected
    │   │   │   ├── dict_pattern_regular_record.res.expected
    │   │   │   ├── dict_record_style_field_access.res.expected
    │   │   │   ├── directive_attr.res.expected
    │   │   │   ├── duplicate_labels_error.res.expected
    │   │   │   ├── fieldNotOptional.res.expected
    │   │   │   ├── for_loop_condition.res.expected
    │   │   │   ├── fun_return_poly1.res.expected
    │   │   │   ├── fun_return_poly2.res.expected
    │   │   │   ├── function_argument_mismatch.res.expected
    │   │   │   ├── function_call_mismatch.res.expected
    │   │   │   ├── function_return_mismatch.res.expected
    │   │   │   ├── highlighting1.res.expected
    │   │   │   ├── highlighting2.res.expected
    │   │   │   ├── highlighting3.res.expected
    │   │   │   ├── highlighting4.res.expected
    │   │   │   ├── highlighting5.res.expected
    │   │   │   ├── highlighting6.res.expected
    │   │   │   ├── if_branch_mismatch.res.expected
    │   │   │   ├── if_condition_mismatch.res.expected
    │   │   │   ├── inline_types_record_type_params.res.expected
    │   │   │   ├── intoverflow.res.expected
    │   │   │   ├── jinterp.res.expected
    │   │   │   ├── jsx_custom_component_children.res.expected
    │   │   │   ├── jsx_custom_component_optional.res.expected
    │   │   │   ├── jsx_custom_component_optional_prop.res.expected
    │   │   │   ├── jsx_custom_component_type_mismatch.res.expected
    │   │   │   ├── jsx_type_mismatch_array_element.res.expected
    │   │   │   ├── jsx_type_mismatch_array_raw.res.expected
    │   │   │   ├── jsx_type_mismatch_float.res.expected
    │   │   │   ├── jsx_type_mismatch_int.res.expected
    │   │   │   ├── jsx_type_mismatch_option.res.expected
    │   │   │   ├── jsx_type_mismatch_string.res.expected
    │   │   │   ├── math_operator_constant.res.expected
    │   │   │   ├── math_operator_float.res.expected
    │   │   │   ├── math_operator_int.res.expected
    │   │   │   ├── math_operator_string.res.expected
    │   │   │   ├── method_arity_mismatch.res.expected
    │   │   │   ├── missing_label.res.expected
    │   │   │   ├── missing_labels.res.expected
    │   │   │   ├── missing_required_prop.res.expected
    │   │   │   ├── missing_required_prop_when_children.res.expected
    │   │   │   ├── missing_required_prop_when_single_child.res.expected
    │   │   │   ├── modules1.res.expected
    │   │   │   ├── modules2.res.expected
    │   │   │   ├── modules3.res.expected
    │   │   │   ├── moreArguments1.res.expected
    │   │   │   ├── moreArguments2.res.expected
    │   │   │   ├── moreArguments3.res.expected
    │   │   │   ├── moreArguments4.res.expected
    │   │   │   ├── moreArguments5.res.expected
    │   │   │   ├── multiple_tag_1.res.expected
    │   │   │   ├── multiple_tag_2.res.expected
    │   │   │   ├── non_function_uncurried_apply.res.expected
    │   │   │   ├── object_field_mismatch.res.expected
    │   │   │   ├── object_field_missing.res.expected
    │   │   │   ├── object_literal_passed_when_record_expected.res.expected
    │   │   │   ├── opt_args_arity.res.expected
    │   │   │   ├── optional_fn_argument_pass_option.res.expected
    │   │   │   ├── optional_record_field_pass_option.res.expected
    │   │   │   ├── partial_app.res.expected
    │   │   │   ├── pattern_matching_on_option_but_value_not_option.res.expected
    │   │   │   ├── pattern_matching_on_value_but_is_option.res.expected
    │   │   │   ├── polyvariant_constructor_payload_mismatch.res.expected
    │   │   │   ├── polyvariant_constructors_mismatch_second.res.expected
    │   │   │   ├── polyvariant_name_formatting.res.expected
    │   │   │   ├── polyvariants_no_overlap.res.expected
    │   │   │   ├── primitives1.res.expected
    │   │   │   ├── primitives10.res.expected
    │   │   │   ├── primitives11.res.expected
    │   │   │   ├── primitives2.res.expected
    │   │   │   ├── primitives3.res.expected
    │   │   │   ├── primitives4.res.expected
    │   │   │   ├── primitives5.res.expected
    │   │   │   ├── primitives6.res.expected
    │   │   │   ├── primitives7.res.expected
    │   │   │   ├── primitives8.res.expected
    │   │   │   ├── primitives9.res.expected
    │   │   │   ├── private_without_body.res.expected
    │   │   │   ├── promise_needs_await.res.expected
    │   │   │   ├── react_component_with_props.res.expected
    │   │   │   ├── react_component_with_props_external.res.expected
    │   │   │   ├── record_coercion_as_payload_mismatch_both.res.expected
    │   │   │   ├── record_coercion_as_payload_mismatch_left.res.expected
    │   │   │   ├── record_coercion_as_payload_mismatch_right.res.expected
    │   │   │   ├── record_coercion_missing_field.res.expected
    │   │   │   ├── record_coercion_optional_mismatch.res.expected
    │   │   │   ├── record_type_spreads.res.expected
    │   │   │   ├── record_type_spreads_deep_sub.res.expected
    │   │   │   ├── recursive_type.res.expected
    │   │   │   ├── repeated_def_extension_constr.res.expected
    │   │   │   ├── repeated_def_module_types.res.expected
    │   │   │   ├── repeated_def_modules.res.expected
    │   │   │   ├── repeated_def_types.res.expected
    │   │   │   ├── set_record_field_type_match.res.expected
    │   │   │   ├── stdlib_removed_in_error.res.expected
    │   │   │   ├── subtype_record.res.expected
    │   │   │   ├── subtype_string.res.expected
    │   │   │   ├── suggest_module_for_missing_identifier.res.expected
    │   │   │   ├── suggest_module_for_missing_identifier_with_spellcheck.res.expected
    │   │   │   ├── switch_different_types.res.expected
    │   │   │   ├── switch_guard.res.expected
    │   │   │   ├── syntaxErrors1.res.expected
    │   │   │   ├── syntaxErrors2.res.expected
    │   │   │   ├── syntaxErrors3.res.expected
    │   │   │   ├── syntaxErrors4.res.expected
    │   │   │   ├── syntaxErrors5.res.expected
    │   │   │   ├── todo_with_no_payload.res.expected
    │   │   │   ├── todo_with_payload.res.expected
    │   │   │   ├── top_level_fn_call_not_unit.res.expected
    │   │   │   ├── top_level_value_not_unit.res.expected
    │   │   │   ├── try_catch_same_type.res.expected
    │   │   │   ├── type1.res.expected
    │   │   │   ├── type2.res.expected
    │   │   │   ├── type3.res.expected
    │   │   │   ├── u_for_c_in_c_mode.res.expected
    │   │   │   ├── u_for_c_in_u_mode.res.expected
    │   │   │   ├── unbound_record_field.res.expected
    │   │   │   ├── uncurried_expected.res.expected
    │   │   │   ├── uncurried_wrong_label.res.expected
    │   │   │   ├── unicode_location.res.expected
    │   │   │   ├── unknown_tagged_template_function.res.expected
    │   │   │   ├── unused_variable.res.expected
    │   │   │   ├── unused_warnings.res.expected
    │   │   │   ├── variant_coercion_bigint.res.expected
    │   │   │   ├── variant_coercion_bigint_as.res.expected
    │   │   │   ├── variant_coercion_float.res.expected
    │   │   │   ├── variant_coercion_float_as.res.expected
    │   │   │   ├── variant_coercion_inline_record.res.expected
    │   │   │   ├── variant_coercion_int.res.expected
    │   │   │   ├── variant_coercion_int_as.res.expected
    │   │   │   ├── variant_coercion_mismatching_types.res.expected
    │   │   │   ├── variant_coercion_non_unboxed_with_payload.res.expected
    │   │   │   ├── variant_coercion_open_polyvariant.res.expected
    │   │   │   ├── variant_coercion_polyvariant_mismatch_as_attribute.res.expected
    │   │   │   ├── variant_coercion_polyvariant_mismatch_as_attribute2.res.expected
    │   │   │   ├── variant_coercion_polyvariant_unmatched_cases.res.expected
    │   │   │   ├── variant_coercion_polyvariant_with_payload.res.expected
    │   │   │   ├── variant_coercion_string.res.expected
    │   │   │   ├── variant_coercion_string_as.res.expected
    │   │   │   ├── variant_coercion_string_to_variant_no_payload.res.expected
    │   │   │   ├── variant_coercion_string_unboxed.res.expected
    │   │   │   ├── variant_pattern_type_spreads_not_subtype.res.expected
    │   │   │   ├── variant_pattern_type_spreads_not_variant.res.expected
    │   │   │   ├── variant_spread_abstract_type.res.expected
    │   │   │   ├── variant_spread_duplicate_constructors.res.expected
    │   │   │   ├── variant_spread_extensible_variant.res.expected
    │   │   │   ├── variant_spread_inline_records.res.expected
    │   │   │   ├── variant_spread_recursive.res.expected
    │   │   │   ├── variant_spread_tag_missing.res.expected
    │   │   │   ├── variant_spread_tag_value_mismatch.res.expected
    │   │   │   ├── variant_spread_type_parameters.res.expected
    │   │   │   ├── variant_spread_unboxed_mismatch.res.expected
    │   │   │   ├── variant_to_variant_coercion.res.expected
    │   │   │   ├── variant_to_variant_coercion_as.res.expected
    │   │   │   ├── variant_to_variant_coercion_tag.res.expected
    │   │   │   ├── variant_to_variant_coercion_unboxed.res.expected
    │   │   │   ├── variant_to_variant_different_constructor_counts.res.expected
    │   │   │   ├── warnings1.res.expected
    │   │   │   ├── warnings2.res.expected
    │   │   │   ├── warnings4.res.expected
    │   │   │   ├── warnings5.res.expected
    │   │   │   ├── while_condition.res.expected
    │   │   │   ├── wrong_name_component_prop.res.expected
    │   │   │   ├── wrong_name_record_field.res.expected
    │   │   │   └── wrong_type_prop_punning.res.expected
    │   │   ├── fixtures
    │   │   │   ├── DerivingAccessorsRecordParam.res
    │   │   │   ├── ModuleAwait.res
    │   │   │   ├── OptionalImplIntf.res
    │   │   │   ├── OptionalInlineImplIntf.res
    │   │   │   ├── RecordInclusion.res
    │   │   │   ├── UncurriedArgsNotApplied.res
    │   │   │   ├── UntaggedImplIntf.res
    │   │   │   ├── UntaggedNonUnary1.res
    │   │   │   ├── UntaggedNonUnary2.res
    │   │   │   ├── UntaggedTupleAndArray.res
    │   │   │   ├── UntaggedUnknown.res
    │   │   │   ├── arity_mismatch.res
    │   │   │   ├── arity_mismatch2.res
    │   │   │   ├── arity_mismatch3.res
    │   │   │   ├── arity_mismatch4.res
    │   │   │   ├── array_item_type_mismatch.res
    │   │   │   ├── array_literal_passed_to_tuple.res
    │   │   │   ├── array_var_passed_to_tuple.res
    │   │   │   ├── assert_condition.res
    │   │   │   ├── await.res
    │   │   │   ├── awaiting_non_promise.res
    │   │   │   ├── bigint_match_literal.res
    │   │   │   ├── c_for_u_in_c_mode.res
    │   │   │   ├── c_for_u_in_u_mode.res
    │   │   │   ├── collections.res
    │   │   │   ├── comparison_operator.res
    │   │   │   ├── component_invalid_prop.res
    │   │   │   ├── component_missing_prop.res
    │   │   │   ├── component_missing_prop_children.res
    │   │   │   ├── component_missing_prop_test.res
    │   │   │   ├── component_prop_passed_multiple_times.res
    │   │   │   ├── curried_expected.res
    │   │   │   ├── curry_in_uncurry.res
    │   │   │   ├── dict_coercion.res
    │   │   │   ├── dict_helper.res
    │   │   │   ├── dict_inference.res
    │   │   │   ├── dict_magic_field_on_non_dict.res
    │   │   │   ├── dict_pattern_inference.res
    │   │   │   ├── dict_pattern_inference_constrained.res
    │   │   │   ├── dict_pattern_regular_record.res
    │   │   │   ├── dict_record_style_field_access.res
    │   │   │   ├── directive_attr.res
    │   │   │   ├── duplicate_labels_error.res
    │   │   │   ├── fieldNotOptional.res
    │   │   │   ├── for_loop_condition.res
    │   │   │   ├── fun_return_poly1.res
    │   │   │   ├── fun_return_poly2.res
    │   │   │   ├── function_argument_mismatch.res
    │   │   │   ├── function_call_mismatch.res
    │   │   │   ├── function_return_mismatch.res
    │   │   │   ├── highlighting1.res
    │   │   │   ├── highlighting2.res
    │   │   │   ├── highlighting3.res
    │   │   │   ├── highlighting4.res
    │   │   │   ├── highlighting5.res
    │   │   │   ├── highlighting6.res
    │   │   │   ├── if_branch_mismatch.res
    │   │   │   ├── if_condition_mismatch.res
    │   │   │   ├── inline_types_record_type_params.res
    │   │   │   ├── intoverflow.res
    │   │   │   ├── jinterp.res
    │   │   │   ├── jsx_custom_component_children.res
    │   │   │   ├── jsx_custom_component_optional_prop.res
    │   │   │   ├── jsx_custom_component_type_mismatch.res
    │   │   │   ├── jsx_type_mismatch_array_element.res
    │   │   │   ├── jsx_type_mismatch_array_raw.res
    │   │   │   ├── jsx_type_mismatch_float.res
    │   │   │   ├── jsx_type_mismatch_int.res
    │   │   │   ├── jsx_type_mismatch_option.res
    │   │   │   ├── jsx_type_mismatch_string.res
    │   │   │   ├── math_operator_constant.res
    │   │   │   ├── math_operator_float.res
    │   │   │   ├── math_operator_int.res
    │   │   │   ├── math_operator_string.res
    │   │   │   ├── method_arity_mismatch.res
    │   │   │   ├── missing_label.res
    │   │   │   ├── missing_labels.res
    │   │   │   ├── missing_required_prop.res
    │   │   │   ├── missing_required_prop_when_children.res
    │   │   │   ├── missing_required_prop_when_single_child.res
    │   │   │   ├── modules1.res
    │   │   │   ├── modules2.res
    │   │   │   ├── modules3.res
    │   │   │   ├── moreArguments1.res
    │   │   │   ├── moreArguments2.res
    │   │   │   ├── moreArguments3.res
    │   │   │   ├── moreArguments4.res
    │   │   │   ├── moreArguments5.res
    │   │   │   ├── multiple_tag_1.res
    │   │   │   ├── multiple_tag_2.res
    │   │   │   ├── non_function_uncurried_apply.res
    │   │   │   ├── object_field_mismatch.res
    │   │   │   ├── object_field_missing.res
    │   │   │   ├── object_literal_passed_when_record_expected.res
    │   │   │   ├── opt_args_arity.res
    │   │   │   ├── optional_fn_argument_pass_option.res
    │   │   │   ├── optional_record_field_pass_option.res
    │   │   │   ├── partial_app.res
    │   │   │   ├── pattern_matching_on_option_but_value_not_option.res
    │   │   │   ├── pattern_matching_on_value_but_is_option.res
    │   │   │   ├── polyvariant_constructor_payload_mismatch.res
    │   │   │   ├── polyvariant_constructors_mismatch_second.res
    │   │   │   ├── polyvariant_name_formatting.res
    │   │   │   ├── polyvariants_no_overlap.res
    │   │   │   ├── primitives1.res
    │   │   │   ├── primitives10.res
    │   │   │   ├── primitives11.res
    │   │   │   ├── primitives2.res
    │   │   │   ├── primitives3.res
    │   │   │   ├── primitives4.res
    │   │   │   ├── primitives5.res
    │   │   │   ├── primitives6.res
    │   │   │   ├── primitives7.res
    │   │   │   ├── primitives8.res
    │   │   │   ├── primitives9.res
    │   │   │   ├── private_without_body.res
    │   │   │   ├── promise_needs_await.res
    │   │   │   ├── react_component_with_props.res
    │   │   │   ├── react_component_with_props_external.res
    │   │   │   ├── record_coercion_as_payload_mismatch_both.res
    │   │   │   ├── record_coercion_as_payload_mismatch_left.res
    │   │   │   ├── record_coercion_as_payload_mismatch_right.res
    │   │   │   ├── record_coercion_missing_field.res
    │   │   │   ├── record_coercion_optional_mismatch.res
    │   │   │   ├── record_type_spreads.res
    │   │   │   ├── record_type_spreads_deep_sub.res
    │   │   │   ├── recursive_type.res
    │   │   │   ├── repeated_def_extension_constr.res
    │   │   │   ├── repeated_def_module_types.res
    │   │   │   ├── repeated_def_modules.res
    │   │   │   ├── repeated_def_types.res
    │   │   │   ├── set_record_field_type_match.res
    │   │   │   ├── stdlib_removed_in_error.res
    │   │   │   ├── subtype_record.res
    │   │   │   ├── subtype_string.res
    │   │   │   ├── suggest_module_for_missing_identifier.res
    │   │   │   ├── suggest_module_for_missing_identifier_with_spellcheck.res
    │   │   │   ├── switch_different_types.res
    │   │   │   ├── switch_guard.res
    │   │   │   ├── syntaxErrors1.res
    │   │   │   ├── syntaxErrors2.res
    │   │   │   ├── syntaxErrors3.res
    │   │   │   ├── syntaxErrors4.res
    │   │   │   ├── syntaxErrors5.res
    │   │   │   ├── todo_with_no_payload.res
    │   │   │   ├── todo_with_payload.res
    │   │   │   ├── top_level_fn_call_not_unit.res
    │   │   │   ├── top_level_value_not_unit.res
    │   │   │   ├── try_catch_same_type.res
    │   │   │   ├── type1.res
    │   │   │   ├── type2.res
    │   │   │   ├── type3.res
    │   │   │   ├── u_for_c_in_c_mode.res
    │   │   │   ├── u_for_c_in_u_mode.res
    │   │   │   ├── unbound_record_field.res
    │   │   │   ├── uncurried_expected.res
    │   │   │   ├── uncurried_wrong_label.res
    │   │   │   ├── unicode_location.res
    │   │   │   ├── unknown_tagged_template_function.res
    │   │   │   ├── unused_variable.res
    │   │   │   ├── unused_warnings.res
    │   │   │   ├── variant_coercion_bigint.res
    │   │   │   ├── variant_coercion_bigint_as.res
    │   │   │   ├── variant_coercion_float.res
    │   │   │   ├── variant_coercion_float_as.res
    │   │   │   ├── variant_coercion_inline_record.res
    │   │   │   ├── variant_coercion_int.res
    │   │   │   ├── variant_coercion_int_as.res
    │   │   │   ├── variant_coercion_mismatching_types.res
    │   │   │   ├── variant_coercion_non_unboxed_with_payload.res
    │   │   │   ├── variant_coercion_open_polyvariant.res
    │   │   │   ├── variant_coercion_polyvariant_mismatch_as_attribute.res
    │   │   │   ├── variant_coercion_polyvariant_mismatch_as_attribute2.res
    │   │   │   ├── variant_coercion_polyvariant_unmatched_cases.res
    │   │   │   ├── variant_coercion_polyvariant_with_payload.res
    │   │   │   ├── variant_coercion_string.res
    │   │   │   ├── variant_coercion_string_as.res
    │   │   │   ├── variant_coercion_string_to_variant_no_payload.res
    │   │   │   ├── variant_coercion_string_unboxed.res
    │   │   │   ├── variant_pattern_type_spreads_not_subtype.res
    │   │   │   ├── variant_pattern_type_spreads_not_variant.res
    │   │   │   ├── variant_spread_abstract_type.res
    │   │   │   ├── variant_spread_duplicate_constructors.res
    │   │   │   ├── variant_spread_extensible_variant.res
    │   │   │   ├── variant_spread_inline_records.res
    │   │   │   ├── variant_spread_recursive.res
    │   │   │   ├── variant_spread_tag_missing.res
    │   │   │   ├── variant_spread_tag_value_mismatch.res
    │   │   │   ├── variant_spread_type_parameters.res
    │   │   │   ├── variant_spread_unboxed_mismatch.res
    │   │   │   ├── variant_to_variant_coercion.res
    │   │   │   ├── variant_to_variant_coercion_as.res
    │   │   │   ├── variant_to_variant_coercion_tag.res
    │   │   │   ├── variant_to_variant_coercion_unboxed.res
    │   │   │   ├── variant_to_variant_different_constructor_counts.res
    │   │   │   ├── warnings1.res
    │   │   │   ├── warnings2.res
    │   │   │   ├── warnings4.res
    │   │   │   ├── warnings5.res
    │   │   │   ├── while_condition.res
    │   │   │   ├── wrong_name_component_prop.res
    │   │   │   ├── wrong_name_record_field.res
    │   │   │   └── wrong_type_prop_punning.res
    │   │   └── input.js
    │   ├── transitive_pinned_dependency1
    │   │   ├── .gitignore
    │   │   ├── a
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   ├── src
    │   │   │   │   └── src.res
    │   │   │   └── tests
    │   │   │   │   └── test.res
    │   │   ├── input.js
    │   │   └── node_modules
    │   │   │   ├── b
    │   │   │       ├── bsconfig.json
    │   │   │       ├── package.json
    │   │   │       ├── src
    │   │   │       │   └── src.res
    │   │   │       └── tests
    │   │   │       │   └── test.res
    │   │   │   └── c
    │   │   │       ├── bsconfig.json
    │   │   │       ├── package.json
    │   │   │       ├── src
    │   │   │           └── src.res
    │   │   │       └── tests
    │   │   │           └── test.res
    │   ├── transitive_pinned_dependency2
    │   │   ├── .gitignore
    │   │   ├── a
    │   │   │   ├── package.json
    │   │   │   ├── rescript.json
    │   │   │   ├── src
    │   │   │   │   └── src.res
    │   │   │   └── tests
    │   │   │   │   └── test.res
    │   │   ├── input.js
    │   │   └── node_modules
    │   │   │   ├── b
    │   │   │       ├── bsconfig.json
    │   │   │       ├── package.json
    │   │   │       ├── src
    │   │   │       │   └── src.res
    │   │   │       └── tests
    │   │   │       │   └── test.res
    │   │   │   └── c
    │   │   │       ├── bsconfig.json
    │   │   │       ├── package.json
    │   │   │       ├── src
    │   │   │           └── src.res
    │   │   │       └── tests
    │   │   │           └── test.res
    │   ├── unboxed_bool_with_const
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   └── Main.res
    │   ├── uncurried-always
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   └── UncurriedAlways.res
    │   ├── unicode
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   ├── 📕annotation
    │   │   │   └── a.res
    │   │   ├── 📗block
    │   │   │   └── b.res
    │   │   └── 📙inline
    │   │   │   └── c.res
    │   ├── warn_legacy_config
    │   │   ├── bsconfig.json
    │   │   ├── input.js
    │   │   └── src
    │   │   │   └── demo.res
    │   ├── weird_deps
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   ├── src
    │   │   │   └── demo.res
    │   │   └── test
    │   │   │   └── test.res
    │   ├── weird_devdeps
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   ├── src
    │   │   │   └── demo.res
    │   │   └── test
    │   │   │   └── test.res
    │   ├── weird_names
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── 404.res
    │   │   │   ├── [...params].res
    │   │   │   ├── [...params_max_3].res
    │   │   │   ├── [[...params]].res
    │   │   │   ├── [slug_or_ID].res
    │   │   │   ├── _app.res
    │   │   │   ├── demo.res
    │   │   │   └── utils.test.res
    │   ├── weird_names_not_found_bug
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │   │   ├── demo.res
    │   │   │   └── demo.test.res
    │   ├── x-y
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── x-src
    │   │   │   └── demo.res
    │   ├── xpkg
    │   │   ├── input.js
    │   │   └── rescript.json
    │   └── zerocycle
    │   │   ├── .gitignore
    │   │   ├── input.js
    │   │   ├── rescript.json
    │   │   └── src
    │   │       ├── bar.res
    │   │       ├── bar.res.js
    │   │       ├── demo.res
    │   │       ├── demo.res.js
    │   │       ├── demo2.res
    │   │       ├── demo2.res.js
    │   │       ├── foo.res
    │   │       ├── foo.res.js
    │   │       ├── foo2.res
    │   │       └── foo2.res.js
    ├── dependencies
    │   ├── .gitattributes
    │   ├── .gitignore
    │   └── rescript-react
    │   │   ├── package.json
    │   │   ├── rescript.json
    │   │   └── src
    │   │       ├── React.res
    │   │       ├── ReactDOM.res
    │   │       ├── ReactDOMStyle.res
    │   │       ├── ReactEvent.res
    │   │       └── ReactEvent.resi
    ├── docstring_tests
    │   ├── .gitignore
    │   ├── ArrayUtils.res
    │   ├── ArrayUtils.res.js
    │   ├── DocTest.res
    │   ├── DocTest.res.js
    │   ├── DocTest.resi
    │   ├── Mocha.res
    │   ├── Mocha.res.js
    │   ├── Node.res
    │   ├── Node.res.js
    │   ├── SpawnAsync.res
    │   ├── SpawnAsync.res.js
    │   ├── package.json
    │   └── rescript.json
    ├── dune
    ├── gentype_tests
    │   └── typescript-react-example
    │   │   ├── .gitignore
    │   │   ├── Makefile
    │   │   ├── README.md
    │   │   ├── biome.json
    │   │   ├── package.json
    │   │   ├── public
    │   │       ├── favicon.ico
    │   │       ├── index.html
    │   │       └── manifest.json
    │   │   ├── rescript.json
    │   │   ├── src
    │   │       ├── App.css
    │   │       ├── App.tsx
    │   │       ├── AutoAnnotate.gen.tsx
    │   │       ├── AutoAnnotate.res
    │   │       ├── AutoAnnotate.res.js
    │   │       ├── BootloaderResource.res
    │   │       ├── BootloaderResource.res.js
    │   │       ├── BucklescriptAnnotations.gen.tsx
    │   │       ├── BucklescriptAnnotations.res
    │   │       ├── BucklescriptAnnotations.res.js
    │   │       ├── Comments.gen.tsx
    │   │       ├── Comments.res
    │   │       ├── Comments.res.js
    │   │       ├── Core.gen.tsx
    │   │       ├── Core.res
    │   │       ├── Core.res.js
    │   │       ├── CoreTS.ts
    │   │       ├── CreateErrorHandler1.res
    │   │       ├── CreateErrorHandler1.res.js
    │   │       ├── CreateErrorHandler2.res
    │   │       ├── CreateErrorHandler2.res.js
    │   │       ├── Date.res
    │   │       ├── Date.res.js
    │   │       ├── Derivings.gen.tsx
    │   │       ├── Derivings.res
    │   │       ├── Derivings.res.js
    │   │       ├── Dict.res
    │   │       ├── Dict.res.js
    │   │       ├── Docstrings.gen.tsx
    │   │       ├── Docstrings.res
    │   │       ├── Docstrings.res.js
    │   │       ├── DynamicallyLoadedComponent.res
    │   │       ├── DynamicallyLoadedComponent.res.js
    │   │       ├── EmitModuleIfNoConversion.gen.tsx
    │   │       ├── EmitModuleIfNoConversion.res
    │   │       ├── EmitModuleIfNoConversion.res.js
    │   │       ├── ErrorHandler.res
    │   │       ├── ErrorHandler.res.js
    │   │       ├── ErrorHandler.resi
    │   │       ├── ExportWithRename.gen.tsx
    │   │       ├── ExportWithRename.res
    │   │       ├── ExportWithRename.res.js
    │   │       ├── FirstClassModules.gen.tsx
    │   │       ├── FirstClassModules.res
    │   │       ├── FirstClassModules.res.js
    │   │       ├── FirstClassModulesInterface.gen.tsx
    │   │       ├── FirstClassModulesInterface.res
    │   │       ├── FirstClassModulesInterface.res.js
    │   │       ├── FirstClassModulesInterface.resi
    │   │       ├── GADT.gen.tsx
    │   │       ├── GADT.res
    │   │       ├── GADT.res.js
    │   │       ├── Hooks.gen.tsx
    │   │       ├── Hooks.res
    │   │       ├── Hooks.res.js
    │   │       ├── IgnoreInterface.gen.tsx
    │   │       ├── IgnoreInterface.res
    │   │       ├── IgnoreInterface.res.js
    │   │       ├── IgnoreInterface.resi
    │   │       ├── ImmutableArray.res
    │   │       ├── ImmutableArray.res.js
    │   │       ├── ImmutableArray.resi
    │   │       ├── ImportHookDefault.gen.tsx
    │   │       ├── ImportHookDefault.res
    │   │       ├── ImportHookDefault.res.js
    │   │       ├── ImportHooks.gen.tsx
    │   │       ├── ImportHooks.res
    │   │       ├── ImportHooks.res.js
    │   │       ├── ImportIndex.gen.tsx
    │   │       ├── ImportIndex.res
    │   │       ├── ImportIndex.res.js
    │   │       ├── ImportJsValue.gen.tsx
    │   │       ├── ImportJsValue.res
    │   │       ├── ImportJsValue.res.js
    │   │       ├── Inherits.gen.tsx
    │   │       ├── Inherits.res
    │   │       ├── Inherits.res.js
    │   │       ├── InnerModuleSignature.gen.tsx
    │   │       ├── InnerModuleSignature.res
    │   │       ├── InnerModuleSignature.res.js
    │   │       ├── JSResource.res
    │   │       ├── JSResource.res.js
    │   │       ├── JSXV4.gen.tsx
    │   │       ├── JSXV4.res
    │   │       ├── JSXV4.res.js
    │   │       ├── LabeledFun.gen.tsx
    │   │       ├── LabeledFun.res
    │   │       ├── LabeledFun.res.js
    │   │       ├── LetPrivate.gen.tsx
    │   │       ├── LetPrivate.res
    │   │       ├── LetPrivate.res.js
    │   │       ├── Lib.gen.tsx
    │   │       ├── Lib.res
    │   │       ├── Lib.res.js
    │   │       ├── Machine.gen.tsx
    │   │       ├── Machine.res
    │   │       ├── Machine.res.js
    │   │       ├── Map_.res
    │   │       ├── Map_.res.js
    │   │       ├── ModuleAliases.gen.tsx
    │   │       ├── ModuleAliases.res
    │   │       ├── ModuleAliases.res.js
    │   │       ├── ModuleAliases2.gen.tsx
    │   │       ├── ModuleAliases2.res
    │   │       ├── ModuleAliases2.res.js
    │   │       ├── ModuleResolution1.gen.tsx
    │   │       ├── ModuleResolution1.res
    │   │       ├── ModuleResolution1.res.js
    │   │       ├── ModuleResolution2.gen.tsx
    │   │       ├── ModuleResolution2.res
    │   │       ├── ModuleResolution2.res.js
    │   │       ├── MoreVariants.gen.tsx
    │   │       ├── MoreVariants.res
    │   │       ├── MoreVariants.res.js
    │   │       ├── MyInput.gen.tsx
    │   │       ├── MyInput.res
    │   │       ├── MyInput.res.js
    │   │       ├── MyInput.tsx
    │   │       ├── MyMath.ts
    │   │       ├── MyModule.gen.tsx
    │   │       ├── MyModule.res
    │   │       ├── MyModule.res.js
    │   │       ├── NestedModules.gen.tsx
    │   │       ├── NestedModules.res
    │   │       ├── NestedModules.res.js
    │   │       ├── NestedModulesInSignature.gen.tsx
    │   │       ├── NestedModulesInSignature.res
    │   │       ├── NestedModulesInSignature.res.js
    │   │       ├── NestedModulesInSignature.resi
    │   │       ├── NestedVariants.gen.tsx
    │   │       ├── NestedVariants.res
    │   │       ├── NestedVariants.res.js
    │   │       ├── NonrecursiveTypes.gen.tsx
    │   │       ├── NonrecursiveTypes.res
    │   │       ├── NonrecursiveTypes.res.js
    │   │       ├── Null.res
    │   │       ├── Null.res.js
    │   │       ├── Nullable.res
    │   │       ├── Nullable.res.js
    │   │       ├── NumericPolyVar.gen.tsx
    │   │       ├── NumericPolyVar.res
    │   │       ├── NumericPolyVar.res.js
    │   │       ├── Object.gen.tsx
    │   │       ├── Object.res
    │   │       ├── Object.res.js
    │   │       ├── OnClick2.gen.tsx
    │   │       ├── OnClick2.res
    │   │       ├── OnClick2.res.js
    │   │       ├── Opaque.gen.tsx
    │   │       ├── Opaque.res
    │   │       ├── Opaque.res.js
    │   │       ├── Promise.res
    │   │       ├── Promise.res.js
    │   │       ├── Records.gen.tsx
    │   │       ├── Records.res
    │   │       ├── Records.res.js
    │   │       ├── References.gen.tsx
    │   │       ├── References.res
    │   │       ├── References.res.js
    │   │       ├── RegExp.res
    │   │       ├── RegExp.res.js
    │   │       ├── RequireCond.res
    │   │       ├── RequireCond.res.js
    │   │       ├── Set_.res
    │   │       ├── Set_.res.js
    │   │       ├── Shadow.gen.tsx
    │   │       ├── Shadow.res
    │   │       ├── Shadow.res.js
    │   │       ├── TestEmitInnerModules.gen.tsx
    │   │       ├── TestEmitInnerModules.res
    │   │       ├── TestEmitInnerModules.res.js
    │   │       ├── TestFirstClassModules.gen.tsx
    │   │       ├── TestFirstClassModules.res
    │   │       ├── TestFirstClassModules.res.js
    │   │       ├── TestImmutableArray.gen.tsx
    │   │       ├── TestImmutableArray.res
    │   │       ├── TestImmutableArray.res.js
    │   │       ├── TestModuleAliases.gen.tsx
    │   │       ├── TestModuleAliases.res
    │   │       ├── TestModuleAliases.res.js
    │   │       ├── TestPromise.gen.tsx
    │   │       ├── TestPromise.res
    │   │       ├── TestPromise.res.js
    │   │       ├── TransitiveType1.gen.tsx
    │   │       ├── TransitiveType1.res
    │   │       ├── TransitiveType1.res.js
    │   │       ├── TransitiveType2.gen.tsx
    │   │       ├── TransitiveType2.res
    │   │       ├── TransitiveType2.res.js
    │   │       ├── TransitiveType3.gen.tsx
    │   │       ├── TransitiveType3.res
    │   │       ├── TransitiveType3.res.js
    │   │       ├── TypeNameSanitize.gen.tsx
    │   │       ├── TypeNameSanitize.res
    │   │       ├── TypeNameSanitize.res.js
    │   │       ├── TypeParams1.gen.tsx
    │   │       ├── TypeParams1.res
    │   │       ├── TypeParams1.res.js
    │   │       ├── TypeParams2.gen.tsx
    │   │       ├── TypeParams2.res
    │   │       ├── TypeParams2.res.js
    │   │       ├── TypeParams3.gen.tsx
    │   │       ├── TypeParams3.res
    │   │       ├── TypeParams3.res.js
    │   │       ├── Unboxed.gen.tsx
    │   │       ├── Unboxed.res
    │   │       ├── Unboxed.res.js
    │   │       ├── Uncurried.gen.tsx
    │   │       ├── Uncurried.res
    │   │       ├── Uncurried.res.js
    │   │       ├── Undefined.res
    │   │       ├── Undefined.res.js
    │   │       ├── Usage.gen.tsx
    │   │       ├── Usage.res
    │   │       ├── Usage.res.js
    │   │       ├── UseImportJsValue.gen.tsx
    │   │       ├── UseImportJsValue.res
    │   │       ├── UseImportJsValue.res.js
    │   │       ├── Variants.gen.tsx
    │   │       ├── Variants.res
    │   │       ├── Variants.res.js
    │   │       ├── VariantsWithPayload.gen.tsx
    │   │       ├── VariantsWithPayload.res
    │   │       ├── VariantsWithPayload.res.js
    │   │       ├── Warnings.gen.tsx
    │   │       ├── Warnings.res
    │   │       ├── Warnings.res.js
    │   │       ├── WeakMap.res
    │   │       ├── WeakMap.res.js
    │   │       ├── WeakSet.res
    │   │       ├── WeakSet.res.js
    │   │       ├── Wrapper.gen.tsx
    │   │       ├── Wrapper.res
    │   │       ├── Wrapper.res.js
    │   │       ├── counter.gen.tsx
    │   │       ├── counter.res
    │   │       ├── counter.res.js
    │   │       ├── exportNestedValues.js
    │   │       ├── hookExample.tsx
    │   │       ├── index.css
    │   │       ├── index.tsx
    │   │       ├── location
    │   │       │   ├── location.gen.tsx
    │   │       │   ├── location.res
    │   │       │   └── location.res.js
    │   │       ├── logo.svg
    │   │       ├── nested
    │   │       │   ├── Tuples.gen.tsx
    │   │       │   ├── Tuples.res
    │   │       │   ├── Tuples.res.js
    │   │       │   ├── Types.gen.tsx
    │   │       │   ├── Types.res
    │   │       │   └── Types.res.js
    │   │       ├── react-app-env.d.ts
    │   │       ├── shims
    │   │       │   ├── Belt.shim.ts
    │   │       │   ├── Js.shim.ts
    │   │       │   ├── Jsx.shim.ts
    │   │       │   ├── JsxEvent.shim.ts
    │   │       │   └── RescriptPervasives.shim.ts
    │   │       ├── strange_file_names
    │   │       │   ├── 404.gen.tsx
    │   │       │   ├── 404.res
    │   │       │   ├── 404.res.js
    │   │       │   ├── AppModal.web.gen.tsx
    │   │       │   ├── AppModal.web.res
    │   │       │   ├── AppModal.web.res.js
    │   │       │   ├── _under.gen.tsx
    │   │       │   ├── _under.res
    │   │       │   ├── _under.res.js
    │   │       │   ├── with_underscore.gen.tsx
    │   │       │   ├── with_underscore.res
    │   │       │   └── with_underscore.res.js
    │   │       └── testReferences.ts
    │   │   └── tsconfig.json
    ├── ounit_tests
    │   ├── dune
    │   ├── ounit_array_tests.ml
    │   ├── ounit_bal_tree_tests.ml
    │   ├── ounit_bsb_pkg_tests.ml
    │   ├── ounit_bsb_regex_tests.ml
    │   ├── ounit_data_random.ml
    │   ├── ounit_ext_json_tests.ml
    │   ├── ounit_hash_set_tests.ml
    │   ├── ounit_hash_stubs_test.ml
    │   ├── ounit_hashtbl_tests.ml
    │   ├── ounit_ident_mask_tests.ml
    │   ├── ounit_int_vec_tests.ml
    │   ├── ounit_json_tests.ml
    │   ├── ounit_list_test.ml
    │   ├── ounit_map_tests.ml
    │   ├── ounit_path_tests.ml
    │   ├── ounit_scc_tests.ml
    │   ├── ounit_string_tests.ml
    │   ├── ounit_tests_main.ml
    │   ├── ounit_tests_main.mli
    │   ├── ounit_tests_util.ml
    │   ├── ounit_unicode_tests.ml
    │   ├── ounit_utf8_test.ml
    │   ├── ounit_util_tests.ml
    │   └── ounit_vec_test.ml
    ├── package_tests
    │   └── installation_test
    │   │   ├── rescript.json
    │   │   └── src
    │   │       └── Test.res
    ├── syntax_benchmarks
    │   ├── Benchmark.ml
    │   ├── data
    │   │   ├── HeroGraphic.res
    │   │   ├── Napkinscript.res
    │   │   ├── RedBlackTree.res
    │   │   └── RedBlackTreeNoComments.res
    │   ├── dune
    │   └── time.c
    ├── syntax_tests
    │   ├── data
    │   │   ├── api
    │   │   │   ├── reasonSyntax.res
    │   │   │   ├── reiSyntax.resi
    │   │   │   ├── resReactJsx.res
    │   │   │   ├── resSyntax.res
    │   │   │   └── resiSyntax.resi
    │   │   ├── ast-mapping
    │   │   │   ├── JSXElements.res
    │   │   │   ├── JSXFragments.res
    │   │   │   └── expected
    │   │   │   │   ├── JSXElements.res.txt
    │   │   │   │   └── JSXFragments.res.txt
    │   │   ├── conversion
    │   │   │   └── reason
    │   │   │   │   ├── attributes.res
    │   │   │   │   ├── bracedJsx.res
    │   │   │   │   ├── braces.res
    │   │   │   │   ├── comments.res
    │   │   │   │   ├── docComments.res
    │   │   │   │   ├── expected
    │   │   │   │       ├── attributes.res.txt
    │   │   │   │       ├── bracedJsx.res.txt
    │   │   │   │       ├── braces.res.txt
    │   │   │   │       ├── comments.res.txt
    │   │   │   │       ├── docComments.res.txt
    │   │   │   │       ├── extension.res.txt
    │   │   │   │       ├── fastPipe.res.txt
    │   │   │   │       ├── gentype.res.txt
    │   │   │   │       ├── gentype.resi.txt
    │   │   │   │       ├── jsObject.res.txt
    │   │   │   │       ├── jsObject.resi.txt
    │   │   │   │       ├── jsxProps.res.txt
    │   │   │   │       ├── letBinding.res.txt
    │   │   │   │       ├── letprivate.res.txt
    │   │   │   │       ├── modType.res.txt
    │   │   │   │       ├── moduleLanguage.res.txt
    │   │   │   │       ├── namedArgs.res.txt
    │   │   │   │       ├── openPattern.res.txt
    │   │   │   │       ├── ppx.res.txt
    │   │   │   │       ├── refSugarReason.res.txt
    │   │   │   │       ├── singleLineComments.res.txt
    │   │   │   │       ├── string.res.txt
    │   │   │   │       ├── ternary.res.txt
    │   │   │   │       ├── uncurrried.res.txt
    │   │   │   │       ├── underscoreSugar.res.txt
    │   │   │   │       ├── unicode.res.txt
    │   │   │   │       └── variant.res.txt
    │   │   │   │   ├── extension.res
    │   │   │   │   ├── fastPipe.res
    │   │   │   │   ├── gentype.res
    │   │   │   │   ├── gentype.resi
    │   │   │   │   ├── jsObject.res
    │   │   │   │   ├── jsObject.resi
    │   │   │   │   ├── jsxProps.res
    │   │   │   │   ├── letBinding.res
    │   │   │   │   ├── letprivate.res
    │   │   │   │   ├── modType.res
    │   │   │   │   ├── moduleLanguage.res
    │   │   │   │   ├── namedArgs.res
    │   │   │   │   ├── openPattern.res
    │   │   │   │   ├── ppx.res
    │   │   │   │   ├── refSugarReason.res
    │   │   │   │   ├── singleLineComments.res
    │   │   │   │   ├── string.res
    │   │   │   │   ├── ternary.res
    │   │   │   │   ├── uncurrried.res
    │   │   │   │   ├── underscoreSugar.res
    │   │   │   │   ├── unicode.res
    │   │   │   │   └── variant.res
    │   │   ├── idempotency
    │   │   │   ├── bs-css
    │   │   │   │   ├── Css.res
    │   │   │   │   ├── CssEmotion.res
    │   │   │   │   ├── CssEmotionJs.res
    │   │   │   │   ├── CssJs.res
    │   │   │   │   ├── Css_AtomicTypes.res
    │   │   │   │   ├── Css_AtomicTypes.resi
    │   │   │   │   ├── Css_Colors.res
    │   │   │   │   ├── Css_Core.res
    │   │   │   │   ├── Css_Js_Core.res
    │   │   │   │   ├── Css_Js_Core.resi
    │   │   │   │   ├── Css_Legacy_Core.res
    │   │   │   │   ├── Css_Legacy_Core.resi
    │   │   │   │   ├── Css_test.res
    │   │   │   │   ├── Selectors_test.res
    │   │   │   │   ├── Svg_test.res
    │   │   │   │   ├── Test.res
    │   │   │   │   └── TestEmotion.res
    │   │   │   ├── bs-fetch
    │   │   │   │   └── reason_examples.res
    │   │   │   ├── bs-webapi
    │   │   │   │   ├── src
    │   │   │   │   │   ├── Webapi.res
    │   │   │   │   │   └── Webapi
    │   │   │   │   │   │   ├── Webapi__Base64.res
    │   │   │   │   │   │   ├── Webapi__Canvas.res
    │   │   │   │   │   │   ├── Webapi__Canvas
    │   │   │   │   │   │       ├── Webapi__Canvas__Canvas2d.res
    │   │   │   │   │   │       └── Webapi__Canvas__WebGl.res
    │   │   │   │   │   │   ├── Webapi__Dom.res
    │   │   │   │   │   │   ├── Webapi__Dom
    │   │   │   │   │   │       ├── Webapi__Dom__AnimationEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Attr.res
    │   │   │   │   │   │       ├── Webapi__Dom__BeforeUnloadEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__CdataSection.res
    │   │   │   │   │   │       ├── Webapi__Dom__CharacterData.res
    │   │   │   │   │   │       ├── Webapi__Dom__ChildNode.res
    │   │   │   │   │   │       ├── Webapi__Dom__ClipboardEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__CloseEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Comment.res
    │   │   │   │   │   │       ├── Webapi__Dom__CompositionEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__CssStyleDeclaration.res
    │   │   │   │   │   │       ├── Webapi__Dom__CustomEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Document.res
    │   │   │   │   │   │       ├── Webapi__Dom__DocumentFragment.res
    │   │   │   │   │   │       ├── Webapi__Dom__DocumentOrShadowRoot.res
    │   │   │   │   │   │       ├── Webapi__Dom__DocumentType.res
    │   │   │   │   │   │       ├── Webapi__Dom__DomImplementation.res
    │   │   │   │   │   │       ├── Webapi__Dom__DomRect.res
    │   │   │   │   │   │       ├── Webapi__Dom__DomStringMap.res
    │   │   │   │   │   │       ├── Webapi__Dom__DomTokenList.res
    │   │   │   │   │   │       ├── Webapi__Dom__DragEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Element.res
    │   │   │   │   │   │       ├── Webapi__Dom__ErrorEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Event.res
    │   │   │   │   │   │       ├── Webapi__Dom__EventTarget.res
    │   │   │   │   │   │       ├── Webapi__Dom__FocusEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__GlobalEventHandlers.res
    │   │   │   │   │   │       ├── Webapi__Dom__History.res
    │   │   │   │   │   │       ├── Webapi__Dom__HtmlCollection.res
    │   │   │   │   │   │       ├── Webapi__Dom__HtmlDocument.res
    │   │   │   │   │   │       ├── Webapi__Dom__HtmlElement.res
    │   │   │   │   │   │       ├── Webapi__Dom__HtmlFormElement.res
    │   │   │   │   │   │       ├── Webapi__Dom__HtmlImageElement.res
    │   │   │   │   │   │       ├── Webapi__Dom__HtmlInputElement.res
    │   │   │   │   │   │       ├── Webapi__Dom__IdbVersionChangeEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Image.res
    │   │   │   │   │   │       ├── Webapi__Dom__InputEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__KeyboardEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Location.res
    │   │   │   │   │   │       ├── Webapi__Dom__MouseEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__MutationObserver.res
    │   │   │   │   │   │       ├── Webapi__Dom__MutationRecord.res
    │   │   │   │   │   │       ├── Webapi__Dom__NamedNodeMap.res
    │   │   │   │   │   │       ├── Webapi__Dom__Node.res
    │   │   │   │   │   │       ├── Webapi__Dom__NodeFilter.res
    │   │   │   │   │   │       ├── Webapi__Dom__NodeIterator.res
    │   │   │   │   │   │       ├── Webapi__Dom__NodeList.res
    │   │   │   │   │   │       ├── Webapi__Dom__NonDocumentTypeChildNode.res
    │   │   │   │   │   │       ├── Webapi__Dom__NonElementParentNode.res
    │   │   │   │   │   │       ├── Webapi__Dom__PageTransitionEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__ParentNode.res
    │   │   │   │   │   │       ├── Webapi__Dom__PointerEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__PopStateEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__ProcessingInstruction.res
    │   │   │   │   │   │       ├── Webapi__Dom__ProgressEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Range.res
    │   │   │   │   │   │       ├── Webapi__Dom__RelatedEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Selection.res
    │   │   │   │   │   │       ├── Webapi__Dom__ShadowRoot.res
    │   │   │   │   │   │       ├── Webapi__Dom__Slotable.res
    │   │   │   │   │   │       ├── Webapi__Dom__StorageEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__SvgZoomEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__Text.res
    │   │   │   │   │   │       ├── Webapi__Dom__TimeEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__TouchEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__TrackEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__TransitionEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__TreeWalker.res
    │   │   │   │   │   │       ├── Webapi__Dom__Types.res
    │   │   │   │   │   │       ├── Webapi__Dom__UiEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__ValidityState.res
    │   │   │   │   │   │       ├── Webapi__Dom__WebGlContextEvent.res
    │   │   │   │   │   │       ├── Webapi__Dom__WheelEvent.res
    │   │   │   │   │   │       └── Webapi__Dom__Window.res
    │   │   │   │   │   │   ├── Webapi__File.res
    │   │   │   │   │   │   ├── Webapi__Performance.res
    │   │   │   │   │   │   ├── Webapi__ResizeObserver.res
    │   │   │   │   │   │   ├── Webapi__ResizeObserver
    │   │   │   │   │   │       └── Webapi__ResizeObserver__ResizeObserverEntry.res
    │   │   │   │   │   │   └── Webapi__Url.res
    │   │   │   │   └── tests
    │   │   │   │   │   ├── Webapi
    │   │   │   │   │       ├── Webapi__Base64__test.res
    │   │   │   │   │       ├── Webapi__Canvas
    │   │   │   │   │       │   └── Webapi__Canvas__Canvas2d__test.res
    │   │   │   │   │       ├── Webapi__Dom
    │   │   │   │   │       │   ├── Webapi__Dom__AnimationEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__BeforeUnloadEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__ClipboardEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__CloseEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__CompositionEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__CustomEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Document__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__DomStringMap__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__DomTokenList__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__DragEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Element__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__ErrorEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__EventTarget__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Event__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__FocusEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__GlobalEventHandlers__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__History__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__HtmlDocument__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__HtmlElement__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__IdbVersionChangeEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Image__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__InputEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__KeyboardEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Location__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__MouseEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__NodeList__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Node__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__PageTransitionEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__PointerEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__PopStateEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__ProgressEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Range__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__RelatedEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Selection__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__StorageEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__SvgZoomEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__Text__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__TimeEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__TouchEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__TrackEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__TransitionEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__UiEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__WebGlContextEvent__test.res
    │   │   │   │   │       │   ├── Webapi__Dom__WheelEvent__test.res
    │   │   │   │   │       │   └── Webapi__Dom__Window__test.res
    │   │   │   │   │       ├── Webapi__Performace__test.res
    │   │   │   │   │       ├── Webapi__ResizeObserver__test.res
    │   │   │   │   │       └── Webapi__Url__test.res
    │   │   │   │   │   └── testHelpers.res
    │   │   │   ├── covid-19charts.com
    │   │   │   │   ├── data-processor
    │   │   │   │   │   └── data_processor.res
    │   │   │   │   └── src
    │   │   │   │   │   ├── Chart.res
    │   │   │   │   │   ├── ColorStack.res
    │   │   │   │   │   ├── ColorStack.resi
    │   │   │   │   │   ├── Colors.res
    │   │   │   │   │   ├── CopyToClipboard.res
    │   │   │   │   │   ├── Data.res
    │   │   │   │   │   ├── DatePicker.res
    │   │   │   │   │   ├── Filters.res
    │   │   │   │   │   ├── Index.res
    │   │   │   │   │   ├── Location.res
    │   │   │   │   │   ├── ReactSelect.res
    │   │   │   │   │   ├── Recharts.res
    │   │   │   │   │   ├── SerializeQueryParam.res
    │   │   │   │   │   ├── UseQueryParam.res
    │   │   │   │   │   ├── Victory.res
    │   │   │   │   │   └── Window.res
    │   │   │   ├── genType
    │   │   │   │   └── src
    │   │   │   │   │   ├── Annotation.res
    │   │   │   │   │   ├── Arnold.res
    │   │   │   │   │   ├── CodeItem.res
    │   │   │   │   │   ├── Config_.res
    │   │   │   │   │   ├── Converter.res
    │   │   │   │   │   ├── DeadCode.res
    │   │   │   │   │   ├── DeadCommon.res
    │   │   │   │   │   ├── DeadType.res
    │   │   │   │   │   ├── DeadValue.res
    │   │   │   │   │   ├── Debug.res
    │   │   │   │   │   ├── Dependencies.res
    │   │   │   │   │   ├── EmitJs.res
    │   │   │   │   │   ├── EmitText.res
    │   │   │   │   │   ├── EmitType.res
    │   │   │   │   │   ├── EmitType.resi
    │   │   │   │   │   ├── Emitters.res
    │   │   │   │   │   ├── Emitters.resi
    │   │   │   │   │   ├── ExportModule.res
    │   │   │   │   │   ├── GenIdent.res
    │   │   │   │   │   ├── GenType.res
    │   │   │   │   │   ├── GenTypeCommon.res
    │   │   │   │   │   ├── GenTypeMain.res
    │   │   │   │   │   ├── GeneratedFiles.res
    │   │   │   │   │   ├── ImportPath.res
    │   │   │   │   │   ├── ImportPath.resi
    │   │   │   │   │   ├── Indent.res
    │   │   │   │   │   ├── Log_.res
    │   │   │   │   │   ├── ModuleName.res
    │   │   │   │   │   ├── ModuleName.resi
    │   │   │   │   │   ├── ModuleResolver.res
    │   │   │   │   │   ├── NamedArgs.res
    │   │   │   │   │   ├── Paths.res
    │   │   │   │   │   ├── ResolvedName.res
    │   │   │   │   │   ├── ResolvedName.resi
    │   │   │   │   │   ├── Runtime.res
    │   │   │   │   │   ├── Runtime.resi
    │   │   │   │   │   ├── TranslateCoreType.res
    │   │   │   │   │   ├── TranslateSignature.res
    │   │   │   │   │   ├── TranslateSignatureFromTypes.res
    │   │   │   │   │   ├── TranslateStructure.res
    │   │   │   │   │   ├── TranslateTypeDeclarations.res
    │   │   │   │   │   ├── TranslateTypeExprFromTypes.res
    │   │   │   │   │   ├── Translation.res
    │   │   │   │   │   ├── TypeEnv.res
    │   │   │   │   │   ├── TypeEnv.resi
    │   │   │   │   │   ├── TypeVars.res
    │   │   │   │   │   └── Version.res
    │   │   │   ├── ludum-dare-46
    │   │   │   │   ├── FlappyBird.res
    │   │   │   │   ├── IndexHot.res
    │   │   │   │   ├── assets.res
    │   │   │   │   ├── common.res
    │   │   │   │   ├── hooks.res
    │   │   │   │   ├── index.res
    │   │   │   │   ├── levels.res
    │   │   │   │   ├── point.res
    │   │   │   │   ├── serialize.res
    │   │   │   │   └── sound.res
    │   │   │   ├── mareo
    │   │   │   │   ├── Actors.res
    │   │   │   │   ├── Actors.resi
    │   │   │   │   ├── Director.res
    │   │   │   │   ├── Director.resi
    │   │   │   │   ├── Dom_html.res
    │   │   │   │   ├── Draw.res
    │   │   │   │   ├── Draw.resi
    │   │   │   │   ├── Main.res
    │   │   │   │   ├── Object.res
    │   │   │   │   ├── Object.resi
    │   │   │   │   ├── Particle.res
    │   │   │   │   ├── Particle.resi
    │   │   │   │   ├── Procedural_generator.res
    │   │   │   │   ├── Procedural_generator.resi
    │   │   │   │   ├── Sprite.res
    │   │   │   │   ├── Sprite.resi
    │   │   │   │   ├── Viewport.res
    │   │   │   │   └── Viewport.resi
    │   │   │   ├── napkinscript
    │   │   │   │   └── docComments.res
    │   │   │   ├── nook-exchange
    │   │   │   │   ├── API.res
    │   │   │   │   ├── Analytics.res
    │   │   │   │   ├── App.res
    │   │   │   │   ├── BodyCard.res
    │   │   │   │   ├── Button.res
    │   │   │   │   ├── Colors.res
    │   │   │   │   ├── ConfirmDialog.res
    │   │   │   │   ├── Constants.res
    │   │   │   │   ├── DeleteFromCatalog.res
    │   │   │   │   ├── DiscordBotUpsell.res
    │   │   │   │   ├── DiscordOauth.res
    │   │   │   │   ├── Emoji.res
    │   │   │   │   ├── Error.res
    │   │   │   │   ├── Experiment.res
    │   │   │   │   ├── Footer.res
    │   │   │   │   ├── FriendsPage.res
    │   │   │   │   ├── HeaderBar.res
    │   │   │   │   ├── ImportPage.res
    │   │   │   │   ├── Index.res
    │   │   │   │   ├── Item.res
    │   │   │   │   ├── ItemBrowser.res
    │   │   │   │   ├── ItemCard.res
    │   │   │   │   ├── ItemDetailOverlay.res
    │   │   │   │   ├── ItemFilters.res
    │   │   │   │   ├── ItemImage.res
    │   │   │   │   ├── LanguageSelector.res
    │   │   │   │   ├── Link.res
    │   │   │   │   ├── ListPage.res
    │   │   │   │   ├── LoginOverlay.res
    │   │   │   │   ├── MatchFeatureUpsell.res
    │   │   │   │   ├── Modal.res
    │   │   │   │   ├── MyListsPage.res
    │   │   │   │   ├── MyPage.res
    │   │   │   │   ├── PageTitle.res
    │   │   │   │   ├── PasswordResetPage.res
    │   │   │   │   ├── QuicklistButton.res
    │   │   │   │   ├── QuicklistOverlay.res
    │   │   │   │   ├── QuicklistStore.res
    │   │   │   │   ├── RemoveButton.res
    │   │   │   │   ├── Repromise.res
    │   │   │   │   ├── SettingsPage.res
    │   │   │   │   ├── SettingsStore.res
    │   │   │   │   ├── TemporaryState.res
    │   │   │   │   ├── TextPages.res
    │   │   │   │   ├── User.res
    │   │   │   │   ├── UserItemCard.res
    │   │   │   │   ├── UserItemEllipsisButton.res
    │   │   │   │   ├── UserItemNote.res
    │   │   │   │   ├── UserListBrowser.res
    │   │   │   │   ├── UserPage.res
    │   │   │   │   ├── UserProfileBrowser.res
    │   │   │   │   ├── UserStore.res
    │   │   │   │   ├── UserViewingPage.res
    │   │   │   │   ├── Utils.res
    │   │   │   │   ├── ViewingList.res
    │   │   │   │   └── WishlistToCatalog.res
    │   │   │   ├── pupilfirst
    │   │   │   │   ├── courses
    │   │   │   │   │   ├── CoursesApply__Form.res
    │   │   │   │   │   ├── CoursesApply__Root.res
    │   │   │   │   │   ├── CoursesCurriculum.res
    │   │   │   │   │   ├── CoursesCurriculum__AutoVerify.res
    │   │   │   │   │   ├── CoursesCurriculum__ChecklistItem.res
    │   │   │   │   │   ├── CoursesCurriculum__Coach.res
    │   │   │   │   │   ├── CoursesCurriculum__Community.res
    │   │   │   │   │   ├── CoursesCurriculum__CompletionInstructions.res
    │   │   │   │   │   ├── CoursesCurriculum__Course.res
    │   │   │   │   │   ├── CoursesCurriculum__Discuss.res
    │   │   │   │   │   ├── CoursesCurriculum__Feedback.res
    │   │   │   │   │   ├── CoursesCurriculum__FileForm.res
    │   │   │   │   │   ├── CoursesCurriculum__Grade.res
    │   │   │   │   │   ├── CoursesCurriculum__GradeBar.res
    │   │   │   │   │   ├── CoursesCurriculum__Grading.res
    │   │   │   │   │   ├── CoursesCurriculum__LatestSubmission.res
    │   │   │   │   │   ├── CoursesCurriculum__Learn.res
    │   │   │   │   │   ├── CoursesCurriculum__Level.res
    │   │   │   │   │   ├── CoursesCurriculum__LevelSelector.res
    │   │   │   │   │   ├── CoursesCurriculum__LevelUpButton.res
    │   │   │   │   │   ├── CoursesCurriculum__Notice.res
    │   │   │   │   │   ├── CoursesCurriculum__NoticeManager.res
    │   │   │   │   │   ├── CoursesCurriculum__Overlay.res
    │   │   │   │   │   ├── CoursesCurriculum__Quiz.res
    │   │   │   │   │   ├── CoursesCurriculum__QuizQuestion.res
    │   │   │   │   │   ├── CoursesCurriculum__Submission.res
    │   │   │   │   │   ├── CoursesCurriculum__SubmissionBuilder.res
    │   │   │   │   │   ├── CoursesCurriculum__SubmissionItem.res
    │   │   │   │   │   ├── CoursesCurriculum__SubmissionsAndFeedback.res
    │   │   │   │   │   ├── CoursesCurriculum__Target.res
    │   │   │   │   │   ├── CoursesCurriculum__TargetDetails.res
    │   │   │   │   │   ├── CoursesCurriculum__TargetGroup.res
    │   │   │   │   │   ├── CoursesCurriculum__TargetStatus.res
    │   │   │   │   │   ├── CoursesCurriculum__Team.res
    │   │   │   │   │   ├── CoursesCurriculum__Types.res
    │   │   │   │   │   ├── CoursesCurriculum__UndoButton.res
    │   │   │   │   │   ├── CoursesCurriculum__UrlForm.res
    │   │   │   │   │   ├── CoursesCurriculum__User.res
    │   │   │   │   │   ├── CoursesReview__Checklist.res
    │   │   │   │   │   ├── CoursesReview__ChecklistEditor.res
    │   │   │   │   │   ├── CoursesReview__ChecklistShow.res
    │   │   │   │   │   ├── CoursesReview__ChecklistShowFeedback.res
    │   │   │   │   │   ├── CoursesReview__Feedback.res
    │   │   │   │   │   ├── CoursesReview__FeedbackEditor.res
    │   │   │   │   │   ├── CoursesReview__Grade.res
    │   │   │   │   │   ├── CoursesReview__GradeCard.res
    │   │   │   │   │   ├── CoursesReview__IndexSubmission.res
    │   │   │   │   │   ├── CoursesReview__Level.res
    │   │   │   │   │   ├── CoursesReview__OverlaySubmission.res
    │   │   │   │   │   ├── CoursesReview__ReviewChecklistItem.res
    │   │   │   │   │   ├── CoursesReview__ReviewChecklistResult.res
    │   │   │   │   │   ├── CoursesReview__Root.res
    │   │   │   │   │   ├── CoursesReview__ShowFeedback.res
    │   │   │   │   │   ├── CoursesReview__Student.res
    │   │   │   │   │   ├── CoursesReview__SubmissionDetails.res
    │   │   │   │   │   ├── CoursesReview__SubmissionOverlay.res
    │   │   │   │   │   ├── CoursesReview__Submissions.res
    │   │   │   │   │   ├── CoursesReview__SubmissionsList.res
    │   │   │   │   │   ├── CoursesReview__SubmissionsTab.res
    │   │   │   │   │   ├── CoursesReview__Types.res
    │   │   │   │   │   ├── CoursesStudents__CoachNote.res
    │   │   │   │   │   ├── CoursesStudents__CoachNoteShow.res
    │   │   │   │   │   ├── CoursesStudents__CoachNotes.res
    │   │   │   │   │   ├── CoursesStudents__Course.res
    │   │   │   │   │   ├── CoursesStudents__EvaluationCriterion.res
    │   │   │   │   │   ├── CoursesStudents__Grade.res
    │   │   │   │   │   ├── CoursesStudents__Level.res
    │   │   │   │   │   ├── CoursesStudents__LevelDistribution.res
    │   │   │   │   │   ├── CoursesStudents__Root.res
    │   │   │   │   │   ├── CoursesStudents__StudentDetails.res
    │   │   │   │   │   ├── CoursesStudents__StudentOverlay.res
    │   │   │   │   │   ├── CoursesStudents__Submission.res
    │   │   │   │   │   ├── CoursesStudents__Submissions.res
    │   │   │   │   │   ├── CoursesStudents__SubmissionsList.res
    │   │   │   │   │   ├── CoursesStudents__TeamCoaches.res
    │   │   │   │   │   ├── CoursesStudents__TeamInfo.res
    │   │   │   │   │   ├── CoursesStudents__Teams.res
    │   │   │   │   │   ├── CoursesStudents__TeamsList.res
    │   │   │   │   │   ├── CoursesStudents__Types.res
    │   │   │   │   │   ├── SubmissionChecklistItem.res
    │   │   │   │   │   ├── SubmissionChecklistItemShow.res
    │   │   │   │   │   └── SubmissionChecklistShow.res
    │   │   │   │   ├── home
    │   │   │   │   │   └── HomeStyleguide__MarkdownSyntaxHighlightingPreview.res
    │   │   │   │   ├── layouts
    │   │   │   │   │   ├── SchoolAdminNavbar__Course.res
    │   │   │   │   │   ├── SchoolAdminNavbar__CourseDropdown.res
    │   │   │   │   │   ├── SchoolAdminNavbar__Root.res
    │   │   │   │   │   ├── SchoolAdminNavbar__Types.res
    │   │   │   │   │   ├── StudentCourse__Course.res
    │   │   │   │   │   ├── StudentCourse__Header.res
    │   │   │   │   │   ├── StudentTopNav.res
    │   │   │   │   │   ├── StudentTopNav__DropDown.res
    │   │   │   │   │   ├── StudentTopNav__NavLink.res
    │   │   │   │   │   └── StudentTopNav__Types.res
    │   │   │   │   ├── packages
    │   │   │   │   │   ├── MultiselectDropdown.res
    │   │   │   │   │   ├── MultiselectDropdown__Example.res
    │   │   │   │   │   ├── MultiselectInline.res
    │   │   │   │   │   ├── MultiselectInline__Example.res
    │   │   │   │   │   ├── PfIcon.res
    │   │   │   │   │   └── PfIcon__Example.res
    │   │   │   │   ├── packs
    │   │   │   │   │   ├── ConvertMarkdownPack.res
    │   │   │   │   │   ├── CoursesApplyPack.res
    │   │   │   │   │   ├── CoursesCurriculumPack.res
    │   │   │   │   │   ├── CoursesReviewPack.res
    │   │   │   │   │   ├── CoursesStudentsPack.res
    │   │   │   │   │   ├── HomeStyleguidePack.res
    │   │   │   │   │   ├── QuestionsEditorPack.res
    │   │   │   │   │   ├── QuestionsShowPack.res
    │   │   │   │   │   ├── SchoolAdminsPack.res
    │   │   │   │   │   ├── SchoolCommunitiesPack.res
    │   │   │   │   │   ├── SchoolLayoutPack.res
    │   │   │   │   │   ├── SchoolsCoachesCourseIndexPack.res
    │   │   │   │   │   ├── SchoolsCoachesSchoolIndexPack.res
    │   │   │   │   │   ├── SchoolsCoursesAuthorsPack.res
    │   │   │   │   │   ├── SchoolsCoursesCurriculumPack.res
    │   │   │   │   │   ├── SchoolsCoursesEvaluationCriteriaPack.res
    │   │   │   │   │   ├── SchoolsCoursesExportsPack.res
    │   │   │   │   │   ├── SchoolsCoursesInactiveStudentsPack.res
    │   │   │   │   │   ├── SchoolsCoursesIndexPack.res
    │   │   │   │   │   ├── SchoolsCoursesStudentsPack.res
    │   │   │   │   │   ├── SchoolsCustomizePack.res
    │   │   │   │   │   ├── StudentCourseLayoutPack.res
    │   │   │   │   │   ├── StudentTopNavPack.res
    │   │   │   │   │   ├── UserSessionNewPack.res
    │   │   │   │   │   ├── UserSessionResetPasswordPack.res
    │   │   │   │   │   └── UsersHomePack.res
    │   │   │   │   ├── questions
    │   │   │   │   │   ├── QuestionsShow.res
    │   │   │   │   │   ├── QuestionsShow__AddComment.res
    │   │   │   │   │   ├── QuestionsShow__Answer.res
    │   │   │   │   │   ├── QuestionsShow__AnswerEditor.res
    │   │   │   │   │   ├── QuestionsShow__AnswerShow.res
    │   │   │   │   │   ├── QuestionsShow__ArchiveManager.res
    │   │   │   │   │   ├── QuestionsShow__Comment.res
    │   │   │   │   │   ├── QuestionsShow__CommentShow.res
    │   │   │   │   │   ├── QuestionsShow__Like.res
    │   │   │   │   │   ├── QuestionsShow__LikeManager.res
    │   │   │   │   │   ├── QuestionsShow__LinkedTarget.res
    │   │   │   │   │   ├── QuestionsShow__Question.res
    │   │   │   │   │   ├── QuestionsShow__QuestionEditor.res
    │   │   │   │   │   ├── QuestionsShow__QuestionSuggestion.res
    │   │   │   │   │   ├── QuestionsShow__Target.res
    │   │   │   │   │   ├── QuestionsShow__Types.res
    │   │   │   │   │   ├── QuestionsShow__User.res
    │   │   │   │   │   └── QuestionsShow__UserShow.res
    │   │   │   │   ├── schools
    │   │   │   │   │   ├── CoachesSchoolIndex__Coach.res
    │   │   │   │   │   ├── CoachesSchoolIndex__Coach.resi
    │   │   │   │   │   ├── CoachesSchoolIndex__Types.res
    │   │   │   │   │   ├── CourseAuthors__Author.res
    │   │   │   │   │   ├── CourseAuthors__Form.res
    │   │   │   │   │   ├── CourseAuthors__Root.res
    │   │   │   │   │   ├── CourseAuthors__Types.res
    │   │   │   │   │   ├── CourseCoaches__CourseCoach.res
    │   │   │   │   │   ├── CourseCoaches__EnrollmentForm.res
    │   │   │   │   │   ├── CourseCoaches__InfoForm.res
    │   │   │   │   │   ├── CourseCoaches__InfoFormTeam.res
    │   │   │   │   │   ├── CourseCoaches__Root.res
    │   │   │   │   │   ├── CourseCoaches__SchoolCoach.res
    │   │   │   │   │   ├── CourseCoaches__Team.res
    │   │   │   │   │   ├── CourseCoaches__Types.res
    │   │   │   │   │   ├── CourseEditor.res
    │   │   │   │   │   ├── CourseEditor__Course.res
    │   │   │   │   │   ├── CourseEditor__Form.res
    │   │   │   │   │   ├── CourseEditor__ImagesForm.res
    │   │   │   │   │   ├── CourseEditor__Types.res
    │   │   │   │   │   ├── CourseExports__Course.res
    │   │   │   │   │   ├── CourseExports__CourseExport.res
    │   │   │   │   │   ├── CourseExports__Root.res
    │   │   │   │   │   ├── CourseExports__Tag.res
    │   │   │   │   │   ├── CourseExports__Types.res
    │   │   │   │   │   ├── CurriculumEditor.res
    │   │   │   │   │   ├── CurriculumEditor__AnswerOption.res
    │   │   │   │   │   ├── CurriculumEditor__ContentBlockCreator.res
    │   │   │   │   │   ├── CurriculumEditor__ContentBlockEditor.res
    │   │   │   │   │   ├── CurriculumEditor__ContentEditor.res
    │   │   │   │   │   ├── CurriculumEditor__ContentTypePicker.res
    │   │   │   │   │   ├── CurriculumEditor__Course.res
    │   │   │   │   │   ├── CurriculumEditor__EvaluationCriteria.res
    │   │   │   │   │   ├── CurriculumEditor__FileBlockEditor.res
    │   │   │   │   │   ├── CurriculumEditor__ImageBlockEditor.res
    │   │   │   │   │   ├── CurriculumEditor__Level.res
    │   │   │   │   │   ├── CurriculumEditor__LevelEditor.res
    │   │   │   │   │   ├── CurriculumEditor__MarkdownBlockEditor.res
    │   │   │   │   │   ├── CurriculumEditor__QuizQuestion.res
    │   │   │   │   │   ├── CurriculumEditor__SortResourcesMutation.res
    │   │   │   │   │   ├── CurriculumEditor__Target.res
    │   │   │   │   │   ├── CurriculumEditor__TargetChecklistItemEditor.res
    │   │   │   │   │   ├── CurriculumEditor__TargetDetails.res
    │   │   │   │   │   ├── CurriculumEditor__TargetDetailsEditor.res
    │   │   │   │   │   ├── CurriculumEditor__TargetDrawer.res
    │   │   │   │   │   ├── CurriculumEditor__TargetGroup.res
    │   │   │   │   │   ├── CurriculumEditor__TargetGroupEditor.res
    │   │   │   │   │   ├── CurriculumEditor__TargetGroupShow.res
    │   │   │   │   │   ├── CurriculumEditor__TargetQuizAnswer.res
    │   │   │   │   │   ├── CurriculumEditor__TargetQuizQuestion.res
    │   │   │   │   │   ├── CurriculumEditor__TargetShow.res
    │   │   │   │   │   ├── CurriculumEditor__TargetVersionSelector.res
    │   │   │   │   │   ├── CurriculumEditor__Types.res
    │   │   │   │   │   ├── CurriculumEditor__Version.res
    │   │   │   │   │   ├── CurriculumEditor__VersionsEditor.res
    │   │   │   │   │   ├── EvaluationCriteria__Index.res
    │   │   │   │   │   ├── EvaluationCriterionEditor__Form.res
    │   │   │   │   │   ├── InactiveStudentsPanel__Student.res
    │   │   │   │   │   ├── InactiveStudentsPanel__Student.resi
    │   │   │   │   │   ├── InactiveStudentsPanel__Team.res
    │   │   │   │   │   ├── InactiveStudentsPanel__Team.resi
    │   │   │   │   │   ├── InactiveStudentsPanel__Types.res
    │   │   │   │   │   ├── SA_Coaches_CoachEditor.res
    │   │   │   │   │   ├── SA_Coaches_SchoolIndex.res
    │   │   │   │   │   ├── SA_InactiveStudentsPanel.res
    │   │   │   │   │   ├── SchoolAdmin.res
    │   │   │   │   │   ├── SchoolAdmin__EditorDrawer.res
    │   │   │   │   │   ├── SchoolAdmins__Editor.res
    │   │   │   │   │   ├── SchoolAdmins__Form.res
    │   │   │   │   │   ├── SchoolCommunities__Editor.res
    │   │   │   │   │   ├── SchoolCommunities__Index.res
    │   │   │   │   │   ├── SchoolCommunities__IndexTypes.res
    │   │   │   │   │   ├── SchoolCustomize__AgreementsEditor.res
    │   │   │   │   │   ├── SchoolCustomize__ContactsEditor.res
    │   │   │   │   │   ├── SchoolCustomize__Customizations.res
    │   │   │   │   │   ├── SchoolCustomize__DetailsEditor.res
    │   │   │   │   │   ├── SchoolCustomize__ImageFileInput.res
    │   │   │   │   │   ├── SchoolCustomize__ImagesEditor.res
    │   │   │   │   │   ├── SchoolCustomize__LinksEditor.res
    │   │   │   │   │   ├── SchoolCustomize__MoreLinks.res
    │   │   │   │   │   ├── SchoolCustomize__Root.res
    │   │   │   │   │   ├── SchoolCustomize__SocialLink.res
    │   │   │   │   │   ├── SchoolCustomize__Types.res
    │   │   │   │   │   ├── SchoolCustomize__UpdateSchoolStringError.res
    │   │   │   │   │   ├── School__InputGroupError.res
    │   │   │   │   │   ├── School__SelectBox.res
    │   │   │   │   │   ├── StudentsEditor__ActionsForm.res
    │   │   │   │   │   ├── StudentsEditor__Coach.res
    │   │   │   │   │   ├── StudentsEditor__Coach.resi
    │   │   │   │   │   ├── StudentsEditor__CreateForm.res
    │   │   │   │   │   ├── StudentsEditor__Filter.res
    │   │   │   │   │   ├── StudentsEditor__Level.res
    │   │   │   │   │   ├── StudentsEditor__Level.resi
    │   │   │   │   │   ├── StudentsEditor__Page.res
    │   │   │   │   │   ├── StudentsEditor__Root.res
    │   │   │   │   │   ├── StudentsEditor__Search.res
    │   │   │   │   │   ├── StudentsEditor__SearchableTagList.res
    │   │   │   │   │   ├── StudentsEditor__Student.res
    │   │   │   │   │   ├── StudentsEditor__StudentInfo.res
    │   │   │   │   │   ├── StudentsEditor__StudentInfo.resi
    │   │   │   │   │   ├── StudentsEditor__StudentInfoForm.res
    │   │   │   │   │   ├── StudentsEditor__Team.res
    │   │   │   │   │   ├── StudentsEditor__TeamsList.res
    │   │   │   │   │   ├── StudentsEditor__Types.res
    │   │   │   │   │   ├── StudentsEditor__UpdateDetailsForm.res
    │   │   │   │   │   ├── StudentsEditor__UpdateForm.res
    │   │   │   │   │   ├── TargetChecklistItem.res
    │   │   │   │   │   └── studentsEditor__SelectedStudent.res
    │   │   │   │   ├── shared
    │   │   │   │   │   ├── Api.res
    │   │   │   │   │   ├── ArrayUtils.res
    │   │   │   │   │   ├── AuthenticityToken.res
    │   │   │   │   │   ├── Avatar.res
    │   │   │   │   │   ├── Checkbox.res
    │   │   │   │   │   ├── ContentBlock.res
    │   │   │   │   │   ├── Date.res
    │   │   │   │   │   ├── DatePicker.res
    │   │   │   │   │   ├── DateTime.res
    │   │   │   │   │   ├── DateTime.resi
    │   │   │   │   │   ├── DisablingCover.res
    │   │   │   │   │   ├── DomUtils.res
    │   │   │   │   │   ├── Dropdown.res
    │   │   │   │   │   ├── EmailUtils.res
    │   │   │   │   │   ├── EvaluationCriterion.res
    │   │   │   │   │   ├── FaIcon.res
    │   │   │   │   │   ├── GradeLabel.res
    │   │   │   │   │   ├── GraphqlErrorHandler.res
    │   │   │   │   │   ├── GraphqlQuery.res
    │   │   │   │   │   ├── GraphqlQuery.resi
    │   │   │   │   │   ├── HelpIcon.res
    │   │   │   │   │   ├── Icon.res
    │   │   │   │   │   ├── Link.res
    │   │   │   │   │   ├── ListUtils.res
    │   │   │   │   │   ├── Loading.res
    │   │   │   │   │   ├── LoadingSpinner.res
    │   │   │   │   │   ├── Markdown.res
    │   │   │   │   │   ├── MarkdownBlock.res
    │   │   │   │   │   ├── MarkdownEditor.res
    │   │   │   │   │   ├── Notification.res
    │   │   │   │   │   ├── OptionUtils.res
    │   │   │   │   │   ├── PrismJs.res
    │   │   │   │   │   ├── Radio.res
    │   │   │   │   │   ├── Rollbar.res
    │   │   │   │   │   ├── ScrollLock.res
    │   │   │   │   │   ├── SkeletonLoading.res
    │   │   │   │   │   ├── Sorter.res
    │   │   │   │   │   ├── TargetContentView.res
    │   │   │   │   │   ├── TextareaAutosize.res
    │   │   │   │   │   ├── Tooltip.res
    │   │   │   │   │   ├── UrlUtils.res
    │   │   │   │   │   ├── User.res
    │   │   │   │   │   ├── UserProxy.res
    │   │   │   │   │   └── WindowUtils.res
    │   │   │   │   └── users
    │   │   │   │   │   ├── UserSessionNew.res
    │   │   │   │   │   ├── UserSessionResetPassword.res
    │   │   │   │   │   ├── UsersHome__Community.res
    │   │   │   │   │   ├── UsersHome__Course.res
    │   │   │   │   │   ├── UsersHome__Root.res
    │   │   │   │   │   └── UsersHome__Types.res
    │   │   │   ├── reason-react-hackernews
    │   │   │   │   ├── CommentList.res
    │   │   │   │   ├── CommentsPage.res
    │   │   │   │   ├── NotFound.res
    │   │   │   │   ├── StoryData.res
    │   │   │   │   ├── StoryListItem.res
    │   │   │   │   ├── TopStoriesPage.res
    │   │   │   │   ├── Utils.res
    │   │   │   │   ├── app.res
    │   │   │   │   ├── index.res
    │   │   │   │   └── link.res
    │   │   │   ├── reason-react
    │   │   │   │   └── src
    │   │   │   │   │   ├── React.res
    │   │   │   │   │   ├── ReactDOMRe.res
    │   │   │   │   │   ├── ReactDOMServerRe.res
    │   │   │   │   │   ├── ReactEvent.res
    │   │   │   │   │   ├── ReactEvent.resi
    │   │   │   │   │   ├── ReactEventRe.res
    │   │   │   │   │   ├── ReactEventRe.resi
    │   │   │   │   │   ├── ReasonReact.resi
    │   │   │   │   │   ├── ReasonReactCompat.res
    │   │   │   │   │   ├── ReasonReactCompat.resi
    │   │   │   │   │   ├── ReasonReactOptimizedCreateClass.res
    │   │   │   │   │   ├── ReasonReactRouter.res
    │   │   │   │   │   └── ReasonReactRouter.resi
    │   │   │   ├── reasongl
    │   │   │   │   ├── RGLConstants.res
    │   │   │   │   ├── RGLEvents.res
    │   │   │   │   ├── RGLInterface.res
    │   │   │   │   └── ReasonglInterface.res
    │   │   │   ├── reasonml.org
    │   │   │   │   ├── bindings
    │   │   │   │   │   └── Next.res
    │   │   │   │   ├── common
    │   │   │   │   │   ├── App.res
    │   │   │   │   │   ├── BeltData.res
    │   │   │   │   │   ├── ColorTheme.res
    │   │   │   │   │   ├── HighlightJs.res
    │   │   │   │   │   ├── Mdx.res
    │   │   │   │   │   └── Util.res
    │   │   │   │   ├── components
    │   │   │   │   │   ├── ApiIntro.res
    │   │   │   │   │   ├── ApiMarkdown.res
    │   │   │   │   │   ├── CodeExample.res
    │   │   │   │   │   ├── CodeSignature.res
    │   │   │   │   │   ├── Icon.res
    │   │   │   │   │   ├── Markdown.res
    │   │   │   │   │   ├── Meta.res
    │   │   │   │   │   ├── Navigation.res
    │   │   │   │   │   ├── Tag.res
    │   │   │   │   │   └── Text.res
    │   │   │   │   └── layouts
    │   │   │   │   │   ├── ApiLayout.res
    │   │   │   │   │   ├── BeltDocsLayout.res
    │   │   │   │   │   ├── CommunityLayout.res
    │   │   │   │   │   ├── DocsLayout.res
    │   │   │   │   │   ├── GenTypeDocsLayout.res
    │   │   │   │   │   ├── JavaScriptApiLayout.res
    │   │   │   │   │   ├── JsDocsLayout.res
    │   │   │   │   │   ├── MainLayout.res
    │   │   │   │   │   ├── ManualDocsLayout.res
    │   │   │   │   │   ├── ReasonCompilerDocsLayout.res
    │   │   │   │   │   ├── ReasonReactDocsLayout.res
    │   │   │   │   │   └── SidebarLayout.res
    │   │   │   ├── reductive
    │   │   │   │   ├── reductive.res
    │   │   │   │   ├── reductive.resi
    │   │   │   │   ├── reductiveContext.res
    │   │   │   │   ├── reductiveContext.resi
    │   │   │   │   └── subscription.res
    │   │   │   ├── reprocessing
    │   │   │   │   ├── Reprocessing.res
    │   │   │   │   ├── Reprocessing.resi
    │   │   │   │   ├── Reprocessing_Common.res
    │   │   │   │   ├── Reprocessing_Constants.res
    │   │   │   │   ├── Reprocessing_Constants.resi
    │   │   │   │   ├── Reprocessing_Draw.res
    │   │   │   │   ├── Reprocessing_Draw.resi
    │   │   │   │   ├── Reprocessing_Env.res
    │   │   │   │   ├── Reprocessing_Env.resi
    │   │   │   │   ├── Reprocessing_Events.res
    │   │   │   │   ├── Reprocessing_Font.res
    │   │   │   │   ├── Reprocessing_Internal.res
    │   │   │   │   ├── Reprocessing_Matrix.res
    │   │   │   │   ├── Reprocessing_Shaders.res
    │   │   │   │   ├── Reprocessing_Types.res
    │   │   │   │   ├── Reprocessing_Utils.res
    │   │   │   │   └── Reprocessing_Utils.resi
    │   │   │   ├── warp
    │   │   │   │   ├── Warp.res
    │   │   │   │   ├── Warp.resi
    │   │   │   │   ├── Warp_Client.res
    │   │   │   │   ├── Warp_Client.resi
    │   │   │   │   ├── Warp_Event.res
    │   │   │   │   ├── Warp_Event.resi
    │   │   │   │   ├── Warp_FormData.res
    │   │   │   │   ├── Warp_FormData.resi
    │   │   │   │   ├── Warp_Header.res
    │   │   │   │   ├── Warp_Header.resi
    │   │   │   │   ├── Warp_Method.res
    │   │   │   │   ├── Warp_Method.resi
    │   │   │   │   ├── Warp_QueryString.res
    │   │   │   │   ├── Warp_QueryString.resi
    │   │   │   │   ├── Warp_ResponseType.res
    │   │   │   │   ├── Warp_ResponseType.resi
    │   │   │   │   ├── Warp_Settings.res
    │   │   │   │   ├── Warp_Settings.resi
    │   │   │   │   ├── Warp_Types.res
    │   │   │   │   ├── Warp_Types.resi
    │   │   │   │   ├── Warp_Types_Client.res
    │   │   │   │   ├── Warp_Types_Method.res
    │   │   │   │   ├── Warp_Types_ResponseType.res
    │   │   │   │   └── Warp_XHR.res
    │   │   │   └── wildcards-world-ui
    │   │   │   │   ├── About.res
    │   │   │   │   ├── Accounting.res
    │   │   │   │   ├── Accounting_test.res
    │   │   │   │   ├── ActionButtons.res
    │   │   │   │   ├── Animal.res
    │   │   │   │   ├── AnimalAnnouncement.res
    │   │   │   │   ├── Animal_test.res
    │   │   │   │   ├── Announcement.res
    │   │   │   │   ├── ArtistProfiles.res
    │   │   │   │   ├── Async.res
    │   │   │   │   ├── BN.res
    │   │   │   │   ├── BadWords.res
    │   │   │   │   ├── Blockie.res
    │   │   │   │   ├── Buy.res
    │   │   │   │   ├── BuyGrid.res
    │   │   │   │   ├── BuyInput.res
    │   │   │   │   ├── CONSTANTS.res
    │   │   │   │   ├── Carousel.res
    │   │   │   │   ├── Client.res
    │   │   │   │   ├── Components.res
    │   │   │   │   ├── Config.res
    │   │   │   │   ├── ContractActions.res
    │   │   │   │   ├── ContractUtil.res
    │   │   │   │   ├── CoreConcepts.res
    │   │   │   │   ├── CountDown.res
    │   │   │   │   ├── CustomerBenefit.res
    │   │   │   │   ├── Dai.res
    │   │   │   │   ├── DaiPermit.res
    │   │   │   │   ├── Dapp.res
    │   │   │   │   ├── DiscordChat.res
    │   │   │   │   ├── EmailSignup.res
    │   │   │   │   ├── Erc712.res
    │   │   │   │   ├── Eth.res
    │   │   │   │   ├── Ethers.res
    │   │   │   │   ├── FAQs.res
    │   │   │   │   ├── FeaturedIn.res
    │   │   │   │   ├── FinalNote.res
    │   │   │   │   ├── Footer.res
    │   │   │   │   ├── Globals.res
    │   │   │   │   ├── Header.res
    │   │   │   │   ├── Helper.res
    │   │   │   │   ├── HomepageLeaderBoard.res
    │   │   │   │   ├── HowItWorks.res
    │   │   │   │   ├── IncreaseIterationPage.res
    │   │   │   │   ├── Index.res
    │   │   │   │   ├── Info.res
    │   │   │   │   ├── InputHelp.res
    │   │   │   │   ├── Layout.res
    │   │   │   │   ├── LazyThreeBoxUpdate.res
    │   │   │   │   ├── LeaderBoards.res
    │   │   │   │   ├── Login.res
    │   │   │   │   ├── MonthlyContribution.res
    │   │   │   │   ├── OrgProfile.res
    │   │   │   │   ├── Partners.res
    │   │   │   │   ├── PhotoGallery.res
    │   │   │   │   ├── PriceDisplay.res
    │   │   │   │   ├── ProfileIcon.res
    │   │   │   │   ├── QVSelect.res
    │   │   │   │   ├── QlHooks.res
    │   │   │   │   ├── ReactSwitch.res
    │   │   │   │   ├── ReactTabs.res
    │   │   │   │   ├── ReactTranslate.res
    │   │   │   │   ├── ResponsiveCarousel.res
    │   │   │   │   ├── Rimble.res
    │   │   │   │   ├── RootProvider.res
    │   │   │   │   ├── RootProviderTypes.res
    │   │   │   │   ├── Router.res
    │   │   │   │   ├── SocialButtons.res
    │   │   │   │   ├── SsrEntryPoint.res
    │   │   │   │   ├── Styles.res
    │   │   │   │   ├── Team.res
    │   │   │   │   ├── ThemeProvider.res
    │   │   │   │   ├── ThreeBoxUpdate.res
    │   │   │   │   ├── TokenId.res
    │   │   │   │   ├── TotalContribution.res
    │   │   │   │   ├── TotalDaysHeld.res
    │   │   │   │   ├── TotalRaised.res
    │   │   │   │   ├── Transak.res
    │   │   │   │   ├── TxTemplate.res
    │   │   │   │   ├── UpdateDeposit.res
    │   │   │   │   ├── UpdatePrice.res
    │   │   │   │   ├── UsdPriceProvider.res
    │   │   │   │   ├── UserProfile.res
    │   │   │   │   ├── UserProvider.res
    │   │   │   │   ├── Util_test.res
    │   │   │   │   ├── Validate.res
    │   │   │   │   ├── VotePage.res
    │   │   │   │   ├── VotePageOriginal.res
    │   │   │   │   ├── Web3.res
    │   │   │   │   ├── Web3Connect.res
    │   │   │   │   ├── Web3Connectors.res
    │   │   │   │   ├── Web3Utils.res
    │   │   │   │   ├── WildcardsLoader.res
    │   │   │   │   ├── WildcardsLogo.res
    │   │   │   │   └── WildcardsProvider.res
    │   │   ├── oprint
    │   │   │   ├── expected
    │   │   │   │   └── oprint.resi.txt
    │   │   │   └── oprint.res
    │   │   ├── parsing
    │   │   │   ├── errors
    │   │   │   │   ├── expressions
    │   │   │   │   │   ├── ambiguousArrow.res
    │   │   │   │   │   ├── array.res
    │   │   │   │   │   ├── arrow.res
    │   │   │   │   │   ├── block.res
    │   │   │   │   │   ├── consecutive.res
    │   │   │   │   │   ├── emptyBlock.res
    │   │   │   │   │   ├── emptyeof.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── ambiguousArrow.res.txt
    │   │   │   │   │   │   ├── array.res.txt
    │   │   │   │   │   │   ├── arrow.res.txt
    │   │   │   │   │   │   ├── block.res.txt
    │   │   │   │   │   │   ├── consecutive.res.txt
    │   │   │   │   │   │   ├── emptyBlock.res.txt
    │   │   │   │   │   │   ├── emptyeof.res.txt
    │   │   │   │   │   │   ├── id.res.txt
    │   │   │   │   │   │   ├── if.res.txt
    │   │   │   │   │   │   ├── ifLet.res.txt
    │   │   │   │   │   │   ├── implementation.res.txt
    │   │   │   │   │   │   ├── jsx.res.txt
    │   │   │   │   │   │   ├── letBinding.res.txt
    │   │   │   │   │   │   ├── misc.res.txt
    │   │   │   │   │   │   ├── object.res.txt
    │   │   │   │   │   │   ├── record.res.txt
    │   │   │   │   │   │   ├── setField.res.txt
    │   │   │   │   │   │   ├── stringLiteral.res.txt
    │   │   │   │   │   │   ├── taggedTemplateLiterals.res.txt
    │   │   │   │   │   │   ├── try.res.txt
    │   │   │   │   │   │   └── unexpectedConstraint.res.txt
    │   │   │   │   │   ├── id.res
    │   │   │   │   │   ├── if.res
    │   │   │   │   │   ├── ifLet.res
    │   │   │   │   │   ├── implementation.res
    │   │   │   │   │   ├── jsx.res
    │   │   │   │   │   ├── letBinding.res
    │   │   │   │   │   ├── misc.res
    │   │   │   │   │   ├── object.res
    │   │   │   │   │   ├── record.res
    │   │   │   │   │   ├── setField.res
    │   │   │   │   │   ├── stringLiteral.res
    │   │   │   │   │   ├── taggedTemplateLiterals.res
    │   │   │   │   │   ├── try.res
    │   │   │   │   │   └── unexpectedConstraint.res
    │   │   │   │   ├── other
    │   │   │   │   │   ├── breadcrumbs170.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── breadcrumbs170.res.txt
    │   │   │   │   │   │   ├── for.res.txt
    │   │   │   │   │   │   ├── hashIdent.res.txt
    │   │   │   │   │   │   ├── labelledParameters.res.txt
    │   │   │   │   │   │   ├── oneElementTuple.res.txt
    │   │   │   │   │   │   ├── patternMatching.res.txt
    │   │   │   │   │   │   ├── regionMissingComma.res.txt
    │   │   │   │   │   │   └── spread.res.txt
    │   │   │   │   │   ├── for.res
    │   │   │   │   │   ├── hashIdent.res
    │   │   │   │   │   ├── labelledParameters.res
    │   │   │   │   │   ├── oneElementTuple.res
    │   │   │   │   │   ├── patternMatching.res
    │   │   │   │   │   ├── regionMissingComma.res
    │   │   │   │   │   └── spread.res
    │   │   │   │   ├── pattern
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── missing.res.txt
    │   │   │   │   │   │   └── templateLiteral.res.txt
    │   │   │   │   │   ├── missing.res
    │   │   │   │   │   └── templateLiteral.res
    │   │   │   │   ├── scanner
    │   │   │   │   │   ├── badCharacter.res
    │   │   │   │   │   ├── bigint.res
    │   │   │   │   │   ├── escapeSequence.res
    │   │   │   │   │   ├── exoticIdent.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── badCharacter.res.txt
    │   │   │   │   │   │   ├── bigint.res.txt
    │   │   │   │   │   │   ├── escapeSequence.res.txt
    │   │   │   │   │   │   ├── exoticIdent.res.txt
    │   │   │   │   │   │   ├── exponent_notation.res.txt
    │   │   │   │   │   │   ├── oldDerefOp.res.txt
    │   │   │   │   │   │   ├── unclosedComment.res.txt
    │   │   │   │   │   │   └── unclosedString.res.txt
    │   │   │   │   │   ├── exponent_notation.res
    │   │   │   │   │   ├── oldDerefOp.res
    │   │   │   │   │   ├── unclosedComment.res
    │   │   │   │   │   └── unclosedString.res
    │   │   │   │   ├── signature
    │   │   │   │   │   ├── attributes.resi
    │   │   │   │   │   ├── closingBraces.resi
    │   │   │   │   │   └── expected
    │   │   │   │   │   │   ├── attributes.resi.txt
    │   │   │   │   │   │   └── closingBraces.resi.txt
    │   │   │   │   ├── structure
    │   │   │   │   │   ├── attributes.res
    │   │   │   │   │   ├── closingBraces.res
    │   │   │   │   │   ├── consecutive.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── attributes.res.txt
    │   │   │   │   │   │   ├── closingBraces.res.txt
    │   │   │   │   │   │   ├── consecutive.res.txt
    │   │   │   │   │   │   ├── external.res.txt
    │   │   │   │   │   │   ├── gh16A.res.txt
    │   │   │   │   │   │   ├── gh16B.res.txt
    │   │   │   │   │   │   ├── letBinding.res.txt
    │   │   │   │   │   │   └── letBindingPatternKeyword.res.txt
    │   │   │   │   │   ├── external.res
    │   │   │   │   │   ├── gh16A.res
    │   │   │   │   │   ├── gh16B.res
    │   │   │   │   │   ├── letBinding.res
    │   │   │   │   │   └── letBindingPatternKeyword.res
    │   │   │   │   ├── typeDef
    │   │   │   │   │   ├── emptyInlineRecord.res
    │   │   │   │   │   ├── emptyRecord.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── emptyInlineRecord.res.txt
    │   │   │   │   │   │   ├── emptyRecord.res.txt
    │   │   │   │   │   │   ├── inlineRecord.res.txt
    │   │   │   │   │   │   ├── keywordOnly.res.txt
    │   │   │   │   │   │   ├── namedParameters.res.txt
    │   │   │   │   │   │   ├── nestedRecord.res.txt
    │   │   │   │   │   │   ├── polyvariant.res.txt
    │   │   │   │   │   │   ├── record.res.txt
    │   │   │   │   │   │   ├── recordDocComment.res.txt
    │   │   │   │   │   │   ├── recordMutable.res.txt
    │   │   │   │   │   │   ├── typeDef.res.txt
    │   │   │   │   │   │   └── typeParams.res.txt
    │   │   │   │   │   ├── inlineRecord.res
    │   │   │   │   │   ├── keywordOnly.res
    │   │   │   │   │   ├── namedParameters.res
    │   │   │   │   │   ├── nestedRecord.res
    │   │   │   │   │   ├── polyvariant.res
    │   │   │   │   │   ├── record.res
    │   │   │   │   │   ├── recordDocComment.res
    │   │   │   │   │   ├── recordMutable.res
    │   │   │   │   │   ├── typeDef.res
    │   │   │   │   │   └── typeParams.res
    │   │   │   │   └── typexpr
    │   │   │   │   │   ├── arrow.res
    │   │   │   │   │   ├── bsObjSugar.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │       ├── arrow.res.txt
    │   │   │   │   │       ├── bsObjSugar.res.txt
    │   │   │   │   │       ├── garbage.res.txt
    │   │   │   │   │       ├── objectSpread.res.txt
    │   │   │   │   │       ├── typeConstructorArgs.res.txt
    │   │   │   │   │       └── typeVar.res.txt
    │   │   │   │   │   ├── garbage.res
    │   │   │   │   │   ├── objectSpread.res
    │   │   │   │   │   ├── typeConstructorArgs.res
    │   │   │   │   │   └── typeVar.res
    │   │   │   ├── grammar
    │   │   │   │   ├── expressions
    │   │   │   │   │   ├── UncurriedAlways.res
    │   │   │   │   │   ├── UncurriedByDefault.res
    │   │   │   │   │   ├── apply.res
    │   │   │   │   │   ├── argument.res
    │   │   │   │   │   ├── array.res
    │   │   │   │   │   ├── arrow.res
    │   │   │   │   │   ├── async.res
    │   │   │   │   │   ├── await.res
    │   │   │   │   │   ├── bigint.res
    │   │   │   │   │   ├── binary.res
    │   │   │   │   │   ├── binaryNoEs6Arrow.res
    │   │   │   │   │   ├── block.res
    │   │   │   │   │   ├── bracedOrRecord.res
    │   │   │   │   │   ├── bsObject.res
    │   │   │   │   │   ├── coerce.res
    │   │   │   │   │   ├── constants.res
    │   │   │   │   │   ├── constructor.res
    │   │   │   │   │   ├── dict.res
    │   │   │   │   │   ├── es6template.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── UncurriedAlways.res.txt
    │   │   │   │   │   │   ├── UncurriedByDefault.res.txt
    │   │   │   │   │   │   ├── apply.res.txt
    │   │   │   │   │   │   ├── argument.res.txt
    │   │   │   │   │   │   ├── array.res.txt
    │   │   │   │   │   │   ├── arrow.res.txt
    │   │   │   │   │   │   ├── async.res.txt
    │   │   │   │   │   │   ├── await.res.txt
    │   │   │   │   │   │   ├── bigint.res.txt
    │   │   │   │   │   │   ├── binary.res.txt
    │   │   │   │   │   │   ├── binaryNoEs6Arrow.res.txt
    │   │   │   │   │   │   ├── block.res.txt
    │   │   │   │   │   │   ├── bracedOrRecord.res.txt
    │   │   │   │   │   │   ├── bsObject.res.txt
    │   │   │   │   │   │   ├── coerce.res.txt
    │   │   │   │   │   │   ├── constants.res.txt
    │   │   │   │   │   │   ├── constructor.res.txt
    │   │   │   │   │   │   ├── dict.res.txt
    │   │   │   │   │   │   ├── es6template.res.txt
    │   │   │   │   │   │   ├── extension.res.txt
    │   │   │   │   │   │   ├── firstClassModule.res.txt
    │   │   │   │   │   │   ├── float.res.txt
    │   │   │   │   │   │   ├── for.res.txt
    │   │   │   │   │   │   ├── ident.res.txt
    │   │   │   │   │   │   ├── if.res.txt
    │   │   │   │   │   │   ├── infix.res.txt
    │   │   │   │   │   │   ├── jsx.res.txt
    │   │   │   │   │   │   ├── list.res.txt
    │   │   │   │   │   │   ├── locallyAbstractTypes.res.txt
    │   │   │   │   │   │   ├── parenthesized.res.txt
    │   │   │   │   │   │   ├── polyvariant.res.txt
    │   │   │   │   │   │   ├── primary.res.txt
    │   │   │   │   │   │   ├── record.res.txt
    │   │   │   │   │   │   ├── regex.res.txt
    │   │   │   │   │   │   ├── sideEffects.res.txt
    │   │   │   │   │   │   ├── switch.res.txt
    │   │   │   │   │   │   ├── try.res.txt
    │   │   │   │   │   │   ├── tuple.res.txt
    │   │   │   │   │   │   ├── tupleVsDivision.res.txt
    │   │   │   │   │   │   ├── unary.res.txt
    │   │   │   │   │   │   ├── unaryOrBinary.res.txt
    │   │   │   │   │   │   ├── uncurried.res.txt
    │   │   │   │   │   │   ├── underscoreApply.res.txt
    │   │   │   │   │   │   └── while.res.txt
    │   │   │   │   │   ├── extension.res
    │   │   │   │   │   ├── firstClassModule.res
    │   │   │   │   │   ├── float.res
    │   │   │   │   │   ├── for.res
    │   │   │   │   │   ├── ident.res
    │   │   │   │   │   ├── if.res
    │   │   │   │   │   ├── infix.res
    │   │   │   │   │   ├── jsx.res
    │   │   │   │   │   ├── list.res
    │   │   │   │   │   ├── locallyAbstractTypes.res
    │   │   │   │   │   ├── parenthesized.res
    │   │   │   │   │   ├── polyvariant.res
    │   │   │   │   │   ├── primary.res
    │   │   │   │   │   ├── record.res
    │   │   │   │   │   ├── regex.res
    │   │   │   │   │   ├── sideEffects.res
    │   │   │   │   │   ├── switch.res
    │   │   │   │   │   ├── try.res
    │   │   │   │   │   ├── tuple.res
    │   │   │   │   │   ├── tupleVsDivision.res
    │   │   │   │   │   ├── unary.res
    │   │   │   │   │   ├── unaryOrBinary.res
    │   │   │   │   │   ├── uncurried.res
    │   │   │   │   │   ├── underscoreApply.res
    │   │   │   │   │   └── while.res
    │   │   │   │   ├── ffi
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   └── export.res.txt
    │   │   │   │   │   └── export.res
    │   │   │   │   ├── interface
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   └── interface.resi.txt
    │   │   │   │   │   └── interface.resi
    │   │   │   │   ├── modexpr
    │   │   │   │   │   ├── apply.res
    │   │   │   │   │   ├── constrained.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── apply.res.txt
    │   │   │   │   │   │   ├── constrained.res.txt
    │   │   │   │   │   │   ├── firstClassModules.res.txt
    │   │   │   │   │   │   ├── functor.res.txt
    │   │   │   │   │   │   ├── ident.res.txt
    │   │   │   │   │   │   ├── parenthesized.res.txt
    │   │   │   │   │   │   └── structure.res.txt
    │   │   │   │   │   ├── firstClassModules.res
    │   │   │   │   │   ├── functor.res
    │   │   │   │   │   ├── ident.res
    │   │   │   │   │   ├── parenthesized.res
    │   │   │   │   │   └── structure.res
    │   │   │   │   ├── modtype
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── extension.res.txt
    │   │   │   │   │   │   ├── functor.res.txt
    │   │   │   │   │   │   ├── ident.res.txt
    │   │   │   │   │   │   ├── parenthesized.res.txt
    │   │   │   │   │   │   ├── signature.res.txt
    │   │   │   │   │   │   ├── typeof.res.txt
    │   │   │   │   │   │   └── with.res.txt
    │   │   │   │   │   ├── extension.res
    │   │   │   │   │   ├── functor.res
    │   │   │   │   │   ├── ident.res
    │   │   │   │   │   ├── parenthesized.res
    │   │   │   │   │   ├── signature.res
    │   │   │   │   │   ├── typeof.res
    │   │   │   │   │   └── with.res
    │   │   │   │   ├── pattern
    │   │   │   │   │   ├── any.res
    │   │   │   │   │   ├── array.res
    │   │   │   │   │   ├── constant.res
    │   │   │   │   │   ├── constraint.res
    │   │   │   │   │   ├── constructor.res
    │   │   │   │   │   ├── dict.res
    │   │   │   │   │   ├── exception.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── any.res.txt
    │   │   │   │   │   │   ├── array.res.txt
    │   │   │   │   │   │   ├── constant.res.txt
    │   │   │   │   │   │   ├── constraint.res.txt
    │   │   │   │   │   │   ├── constructor.res.txt
    │   │   │   │   │   │   ├── dict.res.txt
    │   │   │   │   │   │   ├── exception.res.txt
    │   │   │   │   │   │   ├── extension.res.txt
    │   │   │   │   │   │   ├── firstClassModules.res.txt
    │   │   │   │   │   │   ├── lazy.res.txt
    │   │   │   │   │   │   ├── list.res.txt
    │   │   │   │   │   │   ├── or.res.txt
    │   │   │   │   │   │   ├── polyvariants.res.txt
    │   │   │   │   │   │   ├── record.res.txt
    │   │   │   │   │   │   ├── tuple.res.txt
    │   │   │   │   │   │   ├── unit.res.txt
    │   │   │   │   │   │   ├── var.res.txt
    │   │   │   │   │   │   ├── variantSpreads.res.txt
    │   │   │   │   │   │   └── variants.res.txt
    │   │   │   │   │   ├── extension.res
    │   │   │   │   │   ├── firstClassModules.res
    │   │   │   │   │   ├── list.res
    │   │   │   │   │   ├── or.res
    │   │   │   │   │   ├── polyvariants.res
    │   │   │   │   │   ├── record.res
    │   │   │   │   │   ├── tuple.res
    │   │   │   │   │   ├── unit.res
    │   │   │   │   │   ├── var.res
    │   │   │   │   │   ├── variantSpreads.res
    │   │   │   │   │   └── variants.res
    │   │   │   │   ├── signature
    │   │   │   │   │   ├── exception.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── exception.res.txt
    │   │   │   │   │   │   ├── external.res.txt
    │   │   │   │   │   │   ├── include.res.txt
    │   │   │   │   │   │   ├── itemExtension.res.txt
    │   │   │   │   │   │   ├── let.res.txt
    │   │   │   │   │   │   ├── modDecl.res.txt
    │   │   │   │   │   │   ├── modtype.res.txt
    │   │   │   │   │   │   ├── open.res.txt
    │   │   │   │   │   │   ├── recModule.res.txt
    │   │   │   │   │   │   ├── standAloneAttribute.res.txt
    │   │   │   │   │   │   ├── typLvlModAlias.res.txt
    │   │   │   │   │   │   ├── typeDefinition.res.txt
    │   │   │   │   │   │   └── typext.res.txt
    │   │   │   │   │   ├── external.res
    │   │   │   │   │   ├── include.res
    │   │   │   │   │   ├── itemExtension.res
    │   │   │   │   │   ├── let.res
    │   │   │   │   │   ├── modDecl.res
    │   │   │   │   │   ├── modtype.res
    │   │   │   │   │   ├── open.res
    │   │   │   │   │   ├── recModule.res
    │   │   │   │   │   ├── standAloneAttribute.res
    │   │   │   │   │   ├── typLvlModAlias.res
    │   │   │   │   │   ├── typeDefinition.res
    │   │   │   │   │   └── typext.res
    │   │   │   │   ├── structure
    │   │   │   │   │   ├── exceptionDefinition.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── exceptionDefinition.res.txt
    │   │   │   │   │   │   ├── externalDefinition.res.txt
    │   │   │   │   │   │   ├── includeStatement.res.txt
    │   │   │   │   │   │   ├── itemExtension.res.txt
    │   │   │   │   │   │   ├── letBinding.res.txt
    │   │   │   │   │   │   ├── modExprExtension.res.txt
    │   │   │   │   │   │   ├── modType.res.txt
    │   │   │   │   │   │   ├── module.res.txt
    │   │   │   │   │   │   ├── moduleTypeExtension.res.txt
    │   │   │   │   │   │   ├── openDescription.res.txt
    │   │   │   │   │   │   ├── recursiveModules.res.txt
    │   │   │   │   │   │   ├── standaloneAttribute.res.txt
    │   │   │   │   │   │   └── typeDefinition.res.txt
    │   │   │   │   │   ├── externalDefinition.res
    │   │   │   │   │   ├── includeStatement.res
    │   │   │   │   │   ├── itemExtension.res
    │   │   │   │   │   ├── letBinding.res
    │   │   │   │   │   ├── modExprExtension.res
    │   │   │   │   │   ├── modType.res
    │   │   │   │   │   ├── module.res
    │   │   │   │   │   ├── moduleTypeExtension.res
    │   │   │   │   │   ├── openDescription.res
    │   │   │   │   │   ├── recursiveModules.res
    │   │   │   │   │   ├── standaloneAttribute.res
    │   │   │   │   │   └── typeDefinition.res
    │   │   │   │   ├── typedefinition
    │   │   │   │   │   ├── bsObject.res
    │   │   │   │   │   ├── constructorDeclaration.res
    │   │   │   │   │   ├── diamond.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │   │   ├── bsObject.res.txt
    │   │   │   │   │   │   ├── constructorDeclaration.res.txt
    │   │   │   │   │   │   ├── diamond.res.txt
    │   │   │   │   │   │   ├── polyvariant.res.txt
    │   │   │   │   │   │   ├── privateTypeEquation.res.txt
    │   │   │   │   │   │   ├── recordDeclaration.res.txt
    │   │   │   │   │   │   ├── typeConstraint.res.txt
    │   │   │   │   │   │   ├── typeDefinition.res.txt
    │   │   │   │   │   │   ├── typeInformation.res.txt
    │   │   │   │   │   │   ├── typeNonrec.res.txt
    │   │   │   │   │   │   ├── typeRepresentation.res.txt
    │   │   │   │   │   │   ├── typedef.res.txt
    │   │   │   │   │   │   ├── typeparams.res.txt
    │   │   │   │   │   │   └── typext.res.txt
    │   │   │   │   │   ├── polyvariant.res
    │   │   │   │   │   ├── privateTypeEquation.res
    │   │   │   │   │   ├── recordDeclaration.res
    │   │   │   │   │   ├── typeConstraint.res
    │   │   │   │   │   ├── typeDefinition.res
    │   │   │   │   │   ├── typeInformation.res
    │   │   │   │   │   ├── typeNonrec.res
    │   │   │   │   │   ├── typeRepresentation.res
    │   │   │   │   │   ├── typedef.res
    │   │   │   │   │   ├── typeparams.res
    │   │   │   │   │   └── typext.res
    │   │   │   │   └── typexpr
    │   │   │   │   │   ├── alias.res
    │   │   │   │   │   ├── any.res
    │   │   │   │   │   ├── bsObject.res
    │   │   │   │   │   ├── es6Arrow.res
    │   │   │   │   │   ├── expected
    │   │   │   │   │       ├── alias.res.txt
    │   │   │   │   │       ├── any.res.txt
    │   │   │   │   │       ├── bsObject.res.txt
    │   │   │   │   │       ├── es6Arrow.res.txt
    │   │   │   │   │       ├── extension.res.txt
    │   │   │   │   │       ├── firstClassModules.res.txt
    │   │   │   │   │       ├── objectTypeSpreading.res.txt
    │   │   │   │   │       ├── parenthesized.res.txt
    │   │   │   │   │       ├── poly.res.txt
    │   │   │   │   │       ├── polyVariant.res.txt
    │   │   │   │   │       ├── tuple.res.txt
    │   │   │   │   │       ├── typeconstr.res.txt
    │   │   │   │   │       ├── uncurried.res.txt
    │   │   │   │   │       ├── unit.res.txt
    │   │   │   │   │       └── var.res.txt
    │   │   │   │   │   ├── extension.res
    │   │   │   │   │   ├── firstClassModules.res
    │   │   │   │   │   ├── objectTypeSpreading.res
    │   │   │   │   │   ├── parenthesized.res
    │   │   │   │   │   ├── poly.res
    │   │   │   │   │   ├── polyVariant.res
    │   │   │   │   │   ├── tuple.res
    │   │   │   │   │   ├── typeconstr.res
    │   │   │   │   │   ├── uncurried.res
    │   │   │   │   │   ├── unit.res
    │   │   │   │   │   └── var.res
    │   │   │   ├── infiniteLoops
    │   │   │   │   ├── equalAfterBinaryExpr.res
    │   │   │   │   ├── expected
    │   │   │   │   │   ├── equalAfterBinaryExpr.res.txt
    │   │   │   │   │   ├── jsxChildren.res.txt
    │   │   │   │   │   ├── nonRecTypes.res.txt
    │   │   │   │   │   ├── polymorphicVariantType.res.txt
    │   │   │   │   │   └── templateEof.res.txt
    │   │   │   │   ├── jsxChildren.res
    │   │   │   │   ├── nonRecTypes.res
    │   │   │   │   ├── polymorphicVariantType.res
    │   │   │   │   └── templateEof.res
    │   │   │   ├── other
    │   │   │   │   ├── attributes.res
    │   │   │   │   ├── comments.res
    │   │   │   │   ├── docComments.res
    │   │   │   │   ├── emptyFile.res
    │   │   │   │   ├── emptyInterface.resi
    │   │   │   │   ├── expected
    │   │   │   │   │   ├── attributes.res.txt
    │   │   │   │   │   ├── comments.res.txt
    │   │   │   │   │   ├── docComments.res.txt
    │   │   │   │   │   ├── emptyFile.res.txt
    │   │   │   │   │   ├── emptyInterface.resi.txt
    │   │   │   │   │   ├── gentype.res.txt
    │   │   │   │   │   ├── list.res.txt
    │   │   │   │   │   ├── onlyMultilineComment.res.txt
    │   │   │   │   │   ├── onlyMultilineComment.resi.txt
    │   │   │   │   │   ├── onlySinglelineComment.res.txt
    │   │   │   │   │   ├── onlySinglinelineComment.resi.txt
    │   │   │   │   │   ├── semi.res.txt
    │   │   │   │   │   ├── singleLineCommentWithoutNewline.res.txt
    │   │   │   │   │   └── stringLiterals.res.txt
    │   │   │   │   ├── gentype.res
    │   │   │   │   ├── list.res
    │   │   │   │   ├── onlyMultilineComment.res
    │   │   │   │   ├── onlyMultilineComment.resi
    │   │   │   │   ├── onlySinglelineComment.res
    │   │   │   │   ├── onlySinglinelineComment.resi
    │   │   │   │   ├── semi.res
    │   │   │   │   ├── singleLineCommentWithoutNewline.res
    │   │   │   │   └── stringLiterals.res
    │   │   │   └── recovery
    │   │   │   │   ├── comments
    │   │   │   │       ├── eof.res
    │   │   │   │       └── expected
    │   │   │   │       │   └── eof.res.txt
    │   │   │   │   ├── expression
    │   │   │   │       ├── emptyBlock.res
    │   │   │   │       ├── expected
    │   │   │   │       │   ├── emptyBlock.res.txt
    │   │   │   │       │   ├── if.res.txt
    │   │   │   │       │   ├── infinite.res.txt
    │   │   │   │       │   └── list.res.txt
    │   │   │   │       ├── if.res
    │   │   │   │       ├── infinite.res
    │   │   │   │       └── list.res
    │   │   │   │   ├── pattern
    │   │   │   │       ├── array.res
    │   │   │   │       ├── constrained.res
    │   │   │   │       ├── constructor.res
    │   │   │   │       ├── expected
    │   │   │   │       │   ├── array.res.txt
    │   │   │   │       │   ├── constrained.res.txt
    │   │   │   │       │   ├── constructor.res.txt
    │   │   │   │       │   ├── list.res.txt
    │   │   │   │       │   ├── parenthesized.res.txt
    │   │   │   │       │   ├── polyvariant.res.txt
    │   │   │   │       │   ├── record.res.txt
    │   │   │   │       │   └── tuple.res.txt
    │   │   │   │       ├── list.res
    │   │   │   │       ├── parenthesized.res
    │   │   │   │       ├── polyvariant.res
    │   │   │   │       ├── record.res
    │   │   │   │       └── tuple.res
    │   │   │   │   ├── string
    │   │   │   │       ├── emptyeof.res
    │   │   │   │       ├── eof.res
    │   │   │   │       ├── es6template.res
    │   │   │   │       ├── expected
    │   │   │   │       │   ├── emptyeof.res.txt
    │   │   │   │       │   ├── eof.res.txt
    │   │   │   │       │   ├── es6template.res.txt
    │   │   │   │       │   └── unclosed.res.txt
    │   │   │   │       └── unclosed.res
    │   │   │   │   ├── structure
    │   │   │   │       ├── expected
    │   │   │   │       │   └── letBinding.res.txt
    │   │   │   │       └── letBinding.res
    │   │   │   │   ├── typeDef
    │   │   │   │       ├── expected
    │   │   │   │       │   └── typeParams.res.txt
    │   │   │   │       └── typeParams.res
    │   │   │   │   └── typexpr
    │   │   │   │       ├── expected
    │   │   │   │           └── typeConstructorArgs.res.txt
    │   │   │   │       └── typeConstructorArgs.res
    │   │   ├── ppx
    │   │   │   └── react
    │   │   │   │   ├── aliasProps.res
    │   │   │   │   ├── asyncAwait.res
    │   │   │   │   ├── commentAtTop.res
    │   │   │   │   ├── defaultValueProp.res
    │   │   │   │   ├── expected
    │   │   │   │       ├── aliasProps.res.txt
    │   │   │   │       ├── asyncAwait.res.txt
    │   │   │   │       ├── commentAtTop.res.txt
    │   │   │   │       ├── defaultValueProp.res.txt
    │   │   │   │       ├── externalWithCustomName.res.txt
    │   │   │   │       ├── externalWithRef.res.txt
    │   │   │   │       ├── externalWithTypeVariables.res.txt
    │   │   │   │       ├── fileLevelConfig.res.txt
    │   │   │   │       ├── firstClassModules.resi.txt
    │   │   │   │       ├── forwardRef.res.txt
    │   │   │   │       ├── forwardRef.resi.txt
    │   │   │   │       ├── fragment.res.txt
    │   │   │   │       ├── interface.res.txt
    │   │   │   │       ├── interface.resi.txt
    │   │   │   │       ├── interfaceWithRef.res.txt
    │   │   │   │       ├── interfaceWithRef.resi.txt
    │   │   │   │       ├── mangleKeyword.res.txt
    │   │   │   │       ├── nested.res.txt
    │   │   │   │       ├── newtype.res.txt
    │   │   │   │       ├── noPropsWithKey.res.txt
    │   │   │   │       ├── optimizeAutomaticMode.res.txt
    │   │   │   │       ├── optionalKeyType.res.txt
    │   │   │   │       ├── sharedProps.res.txt
    │   │   │   │       ├── sharedProps.resi.txt
    │   │   │   │       ├── sharedPropsWithProps.res.txt
    │   │   │   │       ├── spreadProps.res.txt
    │   │   │   │       ├── topLevel.res.txt
    │   │   │   │       ├── typeConstraint.res.txt
    │   │   │   │       ├── uncurriedProps.res.txt
    │   │   │   │       └── v4.res.txt
    │   │   │   │   ├── externalWithCustomName.res
    │   │   │   │   ├── externalWithRef.res
    │   │   │   │   ├── externalWithTypeVariables.res
    │   │   │   │   ├── fileLevelConfig.res
    │   │   │   │   ├── firstClassModules.resi
    │   │   │   │   ├── forwardRef.res
    │   │   │   │   ├── forwardRef.resi
    │   │   │   │   ├── fragment.res
    │   │   │   │   ├── interface.res
    │   │   │   │   ├── interface.resi
    │   │   │   │   ├── interfaceWithRef.res
    │   │   │   │   ├── interfaceWithRef.resi
    │   │   │   │   ├── mangleKeyword.res
    │   │   │   │   ├── nested.res
    │   │   │   │   ├── newtype.res
    │   │   │   │   ├── noPropsWithKey.res
    │   │   │   │   ├── optimizeAutomaticMode.res
    │   │   │   │   ├── optionalKeyType.res
    │   │   │   │   ├── sharedProps.res
    │   │   │   │   ├── sharedProps.resi
    │   │   │   │   ├── sharedPropsWithProps.res
    │   │   │   │   ├── spreadProps.res
    │   │   │   │   ├── topLevel.res
    │   │   │   │   ├── typeConstraint.res
    │   │   │   │   ├── uncurriedProps.res
    │   │   │   │   └── v4.res
    │   │   └── printer
    │   │   │   ├── comments
    │   │   │       ├── array.res
    │   │   │       ├── binaryExpr.res
    │   │   │       ├── blockExpr.res
    │   │   │       ├── case.res
    │   │   │       ├── docComments.res
    │   │   │       ├── expected
    │   │   │       │   ├── array.res.txt
    │   │   │       │   ├── binaryExpr.res.txt
    │   │   │       │   ├── blockExpr.res.txt
    │   │   │       │   ├── case.res.txt
    │   │   │       │   ├── docComments.res.txt
    │   │   │       │   ├── expr.res.txt
    │   │   │       │   ├── extensionConstructor.res.txt
    │   │   │       │   ├── fileWithOneSingleLineComment.res.txt
    │   │   │       │   ├── fileWithOnlyComments.res.txt
    │   │   │       │   ├── ifLet.res.txt
    │   │   │       │   ├── ifThenElse.res.txt
    │   │   │       │   ├── interfaceWithOneSingleComment.resi.txt
    │   │   │       │   ├── interfaceWithOnlyComments.resi.txt
    │   │   │       │   ├── jsx.res.txt
    │   │   │       │   ├── modExpr.res.txt
    │   │   │       │   ├── modType.res.txt
    │   │   │       │   ├── multiline.res.txt
    │   │   │       │   ├── namedArgs.res.txt
    │   │   │       │   ├── openDescription.res.txt
    │   │   │       │   ├── pattern.res.txt
    │   │   │       │   ├── signatureItem.resi.txt
    │   │   │       │   ├── structure1.res.txt
    │   │   │       │   ├── structure2.res.txt
    │   │   │       │   ├── structure3.res.txt
    │   │   │       │   ├── structure4.res.txt
    │   │   │       │   ├── structureItem.res.txt
    │   │   │       │   ├── trailingComments.res.txt
    │   │   │       │   ├── typeDefinition.res.txt
    │   │   │       │   ├── typexpr.res.txt
    │   │   │       │   ├── valueBindingSugar.res.txt
    │   │   │       │   ├── valueBindings.res.txt
    │   │   │       │   ├── whitespaceCase1.res.txt
    │   │   │       │   ├── whitespaceCase2.res.txt
    │   │   │       │   ├── whitespaceLeadingComment.res.txt
    │   │   │       │   └── whitespaceTrailingLeading.res.txt
    │   │   │       ├── expr.res
    │   │   │       ├── extensionConstructor.res
    │   │   │       ├── fileWithOneSingleLineComment.res
    │   │   │       ├── fileWithOnlyComments.res
    │   │   │       ├── ifLet.res
    │   │   │       ├── ifThenElse.res
    │   │   │       ├── interfaceWithOneSingleComment.resi
    │   │   │       ├── interfaceWithOnlyComments.resi
    │   │   │       ├── jsx.res
    │   │   │       ├── modExpr.res
    │   │   │       ├── modType.res
    │   │   │       ├── multiline.res
    │   │   │       ├── namedArgs.res
    │   │   │       ├── openDescription.res
    │   │   │       ├── pattern.res
    │   │   │       ├── signatureItem.resi
    │   │   │       ├── structure1.res
    │   │   │       ├── structure2.res
    │   │   │       ├── structure3.res
    │   │   │       ├── structure4.res
    │   │   │       ├── structureItem.res
    │   │   │       ├── trailingComments.res
    │   │   │       ├── typeDefinition.res
    │   │   │       ├── typexpr.res
    │   │   │       ├── valueBindingSugar.res
    │   │   │       ├── valueBindings.res
    │   │   │       ├── whitespaceCase1.res
    │   │   │       ├── whitespaceCase2.res
    │   │   │       ├── whitespaceLeadingComment.res
    │   │   │       └── whitespaceTrailingLeading.res
    │   │   │   ├── expr
    │   │   │       ├── DocComments.res
    │   │   │       ├── RecordOrObject.res
    │   │   │       ├── Uncurried.res
    │   │   │       ├── UncurriedByDefault.res
    │   │   │       ├── apply.res
    │   │   │       ├── array.res
    │   │   │       ├── arrayGet.res
    │   │   │       ├── arraySet.res
    │   │   │       ├── assert.res
    │   │   │       ├── asyncAwait.res
    │   │   │       ├── binary.res
    │   │   │       ├── block.res
    │   │   │       ├── braced.res
    │   │   │       ├── bsObj.res
    │   │   │       ├── callback.res
    │   │   │       ├── coerce.res
    │   │   │       ├── constant.res
    │   │   │       ├── constraint.res
    │   │   │       ├── constructor.res
    │   │   │       ├── dict.res
    │   │   │       ├── exoticIdent.res
    │   │   │       ├── expected
    │   │   │       │   ├── DocComments.res.txt
    │   │   │       │   ├── RecordOrObject.res.txt
    │   │   │       │   ├── Uncurried.res.txt
    │   │   │       │   ├── UncurriedByDefault.res.txt
    │   │   │       │   ├── apply.res.txt
    │   │   │       │   ├── array.res.txt
    │   │   │       │   ├── arrayGet.res.txt
    │   │   │       │   ├── arraySet.res.txt
    │   │   │       │   ├── assert.res.txt
    │   │   │       │   ├── asyncAwait.res.txt
    │   │   │       │   ├── binary.res.txt
    │   │   │       │   ├── block.res.txt
    │   │   │       │   ├── braced.res.txt
    │   │   │       │   ├── bsObj.res.txt
    │   │   │       │   ├── callback.res.txt
    │   │   │       │   ├── coerce.res.txt
    │   │   │       │   ├── constant.res.txt
    │   │   │       │   ├── constraint.res.txt
    │   │   │       │   ├── constructor.res.txt
    │   │   │       │   ├── dict.res.txt
    │   │   │       │   ├── exoticIdent.res.txt
    │   │   │       │   ├── extension.res.txt
    │   │   │       │   ├── field.res.txt
    │   │   │       │   ├── firstClassModule.res.txt
    │   │   │       │   ├── for.res.txt
    │   │   │       │   ├── fun.res.txt
    │   │   │       │   ├── ident.res.txt
    │   │   │       │   ├── if.res.txt
    │   │   │       │   ├── jsObjectAccess.res.txt
    │   │   │       │   ├── jsObjectSet.res.txt
    │   │   │       │   ├── jsx.res.txt
    │   │   │       │   ├── lazy.res.txt
    │   │   │       │   ├── let.res.txt
    │   │   │       │   ├── letexception.res.txt
    │   │   │       │   ├── letmodule.res.txt
    │   │   │       │   ├── list.res.txt
    │   │   │       │   ├── nestedCallbacks.res.txt
    │   │   │       │   ├── newtype.res.txt
    │   │   │       │   ├── open.res.txt
    │   │   │       │   ├── pipe.res.txt
    │   │   │       │   ├── polyvariant.res.txt
    │   │   │       │   ├── record.res.txt
    │   │   │       │   ├── sequence.res.txt
    │   │   │       │   ├── setfield.res.txt
    │   │   │       │   ├── sideEffects.res.txt
    │   │   │       │   ├── smartPipe.res.txt
    │   │   │       │   ├── switch.res.txt
    │   │   │       │   ├── templateLiteral.res.txt
    │   │   │       │   ├── ternary.res.txt
    │   │   │       │   ├── try.res.txt
    │   │   │       │   ├── tuple.res.txt
    │   │   │       │   ├── unary.res.txt
    │   │   │       │   ├── underscoreApply.res.txt
    │   │   │       │   ├── while.res.txt
    │   │   │       │   └── whitespace.res.txt
    │   │   │       ├── extension.res
    │   │   │       ├── field.res
    │   │   │       ├── firstClassModule.res
    │   │   │       ├── for.res
    │   │   │       ├── fun.res
    │   │   │       ├── ident.res
    │   │   │       ├── if.res
    │   │   │       ├── jsObjectAccess.res
    │   │   │       ├── jsObjectSet.res
    │   │   │       ├── jsx.res
    │   │   │       ├── let.res
    │   │   │       ├── letexception.res
    │   │   │       ├── letmodule.res
    │   │   │       ├── list.res
    │   │   │       ├── nestedCallbacks.res
    │   │   │       ├── newtype.res
    │   │   │       ├── open.res
    │   │   │       ├── pipe.res
    │   │   │       ├── polyvariant.res
    │   │   │       ├── record.res
    │   │   │       ├── sequence.res
    │   │   │       ├── setfield.res
    │   │   │       ├── sideEffects.res
    │   │   │       ├── smartPipe.res
    │   │   │       ├── switch.res
    │   │   │       ├── templateLiteral.res
    │   │   │       ├── ternary.res
    │   │   │       ├── try.res
    │   │   │       ├── tuple.res
    │   │   │       ├── unary.res
    │   │   │       ├── underscoreApply.res
    │   │   │       ├── while.res
    │   │   │       └── whitespace.res
    │   │   │   ├── ffi
    │   │   │       └── expected
    │   │   │       │   └── export.res.txt
    │   │   │   ├── modExpr
    │   │   │       ├── apply.res
    │   │   │       ├── await.res
    │   │   │       ├── expected
    │   │   │       │   ├── apply.res.txt
    │   │   │       │   ├── await.res.txt
    │   │   │       │   ├── extension.res.txt
    │   │   │       │   ├── functor.res.txt
    │   │   │       │   ├── include.res.txt
    │   │   │       │   ├── structure.res.txt
    │   │   │       │   └── unpack.res.txt
    │   │   │       ├── extension.res
    │   │   │       ├── functor.res
    │   │   │       ├── include.res
    │   │   │       ├── structure.res
    │   │   │       └── unpack.res
    │   │   │   ├── modType
    │   │   │       ├── exoticIdent.res
    │   │   │       ├── expected
    │   │   │       │   ├── exoticIdent.res.txt
    │   │   │       │   ├── extension.res.txt
    │   │   │       │   ├── functor.res.txt
    │   │   │       │   ├── ident.res.txt
    │   │   │       │   ├── moduleTypeOf.res.txt
    │   │   │       │   ├── signature.res.txt
    │   │   │       │   └── withConstraints.res.txt
    │   │   │       ├── extension.res
    │   │   │       ├── functor.res
    │   │   │       ├── ident.res
    │   │   │       ├── moduleTypeOf.res
    │   │   │       ├── signature.res
    │   │   │       └── withConstraints.res
    │   │   │   ├── other
    │   │   │       ├── StaticReactTypes.res
    │   │   │       ├── attributes.res
    │   │   │       ├── case.res
    │   │   │       ├── char.res
    │   │   │       ├── comments.res
    │   │   │       ├── expected
    │   │   │       │   ├── StaticReactTypes.res.txt
    │   │   │       │   ├── attributes.res.txt
    │   │   │       │   ├── case.res.txt
    │   │   │       │   ├── char.res.txt
    │   │   │       │   ├── comments.res.txt
    │   │   │       │   ├── fatSlider.res.txt
    │   │   │       │   ├── home.res.txt
    │   │   │       │   ├── lor.res.txt
    │   │   │       │   ├── moduleData.res.txt
    │   │   │       │   ├── nesting.res.txt
    │   │   │       │   ├── number.res.txt
    │   │   │       │   ├── reasonArity.res.txt
    │   │   │       │   ├── reasonFile.res.txt
    │   │   │       │   ├── reasonInterfaceFile.resi.txt
    │   │   │       │   ├── reasonString.res.txt
    │   │   │       │   ├── signaturePicker.res.txt
    │   │   │       │   └── string.res.txt
    │   │   │       ├── fatSlider.res
    │   │   │       ├── home.res
    │   │   │       ├── lor.res
    │   │   │       ├── moduleData.res
    │   │   │       ├── nesting.res
    │   │   │       ├── number.res
    │   │   │       ├── reasonArity.res
    │   │   │       ├── reasonFile.res
    │   │   │       ├── reasonInterfaceFile.resi
    │   │   │       ├── reasonString.res
    │   │   │       ├── signaturePicker.res
    │   │   │       └── string.res
    │   │   │   ├── pattern
    │   │   │       ├── alias.res
    │   │   │       ├── any.res
    │   │   │       ├── array.res
    │   │   │       ├── constant.res
    │   │   │       ├── constraint.res
    │   │   │       ├── construct.res
    │   │   │       ├── dict.res
    │   │   │       ├── exception.res
    │   │   │       ├── exoticIdent.res
    │   │   │       ├── expected
    │   │   │       │   ├── alias.res.txt
    │   │   │       │   ├── any.res.txt
    │   │   │       │   ├── array.res.txt
    │   │   │       │   ├── constant.res.txt
    │   │   │       │   ├── constraint.res.txt
    │   │   │       │   ├── construct.res.txt
    │   │   │       │   ├── dict.res.txt
    │   │   │       │   ├── exception.res.txt
    │   │   │       │   ├── exoticIdent.res.txt
    │   │   │       │   ├── extension.res.txt
    │   │   │       │   ├── firstClassModules.res.txt
    │   │   │       │   ├── interval.res.txt
    │   │   │       │   ├── lazy.res.txt
    │   │   │       │   ├── list.res.txt
    │   │   │       │   ├── or.res.txt
    │   │   │       │   ├── record.res.txt
    │   │   │       │   ├── tuple.res.txt
    │   │   │       │   ├── type.res.txt
    │   │   │       │   ├── var.res.txt
    │   │   │       │   └── variant.res.txt
    │   │   │       ├── extension.res
    │   │   │       ├── firstClassModules.res
    │   │   │       ├── interval.res
    │   │   │       ├── list.res
    │   │   │       ├── or.res
    │   │   │       ├── record.res
    │   │   │       ├── tuple.res
    │   │   │       ├── type.res
    │   │   │       ├── var.res
    │   │   │       └── variant.res
    │   │   │   ├── signature
    │   │   │       ├── attributes.resi
    │   │   │       ├── exception.resi
    │   │   │       ├── expected
    │   │   │       │   ├── attributes.resi.txt
    │   │   │       │   ├── exception.resi.txt
    │   │   │       │   ├── extension.resi.txt
    │   │   │       │   ├── include.resi.txt
    │   │   │       │   ├── modtype.resi.txt
    │   │   │       │   ├── module.resi.txt
    │   │   │       │   ├── open.resi.txt
    │   │   │       │   ├── recModule.resi.txt
    │   │   │       │   ├── type.resi.txt
    │   │   │       │   ├── typext.resi.txt
    │   │   │       │   └── value.resi.txt
    │   │   │       ├── extension.resi
    │   │   │       ├── include.resi
    │   │   │       ├── modtype.resi
    │   │   │       ├── module.resi
    │   │   │       ├── open.resi
    │   │   │       ├── recModule.resi
    │   │   │       ├── type.resi
    │   │   │       ├── typext.resi
    │   │   │       └── value.resi
    │   │   │   ├── structure
    │   │   │       ├── attribute.res
    │   │   │       ├── exception.res
    │   │   │       ├── expected
    │   │   │       │   ├── attribute.res.txt
    │   │   │       │   ├── exception.res.txt
    │   │   │       │   ├── expr.res.txt
    │   │   │       │   ├── extension.res.txt
    │   │   │       │   ├── external.res.txt
    │   │   │       │   ├── include.res.txt
    │   │   │       │   ├── moduleBinding.res.txt
    │   │   │       │   ├── moduleTypeDeclaration.res.txt
    │   │   │       │   ├── open.res.txt
    │   │   │       │   ├── recModules.res.txt
    │   │   │       │   ├── type.res.txt
    │   │   │       │   ├── typeExtension.res.txt
    │   │   │       │   └── valueBinding.res.txt
    │   │   │       ├── expr.res
    │   │   │       ├── extension.res
    │   │   │       ├── external.res
    │   │   │       ├── include.res
    │   │   │       ├── moduleBinding.res
    │   │   │       ├── moduleTypeDeclaration.res
    │   │   │       ├── open.res
    │   │   │       ├── recModules.res
    │   │   │       ├── type.res
    │   │   │       ├── typeExtension.res
    │   │   │       └── valueBinding.res
    │   │   │   ├── typeDef
    │   │   │       ├── abstract.res
    │   │   │       ├── attributes.res
    │   │   │       ├── constraint.res
    │   │   │       ├── exoticIdent.res
    │   │   │       ├── expected
    │   │   │       │   ├── abstract.res.txt
    │   │   │       │   ├── attributes.res.txt
    │   │   │       │   ├── constraint.res.txt
    │   │   │       │   ├── exoticIdent.res.txt
    │   │   │       │   ├── open.res.txt
    │   │   │       │   ├── private.res.txt
    │   │   │       │   ├── record.res.txt
    │   │   │       │   ├── typeParams.res.txt
    │   │   │       │   └── variant.res.txt
    │   │   │       ├── open.res
    │   │   │       ├── private.res
    │   │   │       ├── record.res
    │   │   │       ├── typeParams.res
    │   │   │       └── variant.res
    │   │   │   └── typexpr
    │   │   │       ├── alias.res
    │   │   │       ├── any.res
    │   │   │       ├── arrow.res
    │   │   │       ├── bsObject.res
    │   │   │       ├── exoticIdent.res
    │   │   │       ├── expected
    │   │   │           ├── alias.res.txt
    │   │   │           ├── any.res.txt
    │   │   │           ├── arrow.res.txt
    │   │   │           ├── bsObject.res.txt
    │   │   │           ├── exoticIdent.res.txt
    │   │   │           ├── extension.res.txt
    │   │   │           ├── firstClassModule.res.txt
    │   │   │           ├── objectTypeSpreading.res.txt
    │   │   │           ├── polyTyp.res.txt
    │   │   │           ├── tuple.res.txt
    │   │   │           ├── typeConstr.res.txt
    │   │   │           ├── var.res.txt
    │   │   │           └── variant.res.txt
    │   │   │       ├── extension.res
    │   │   │       ├── firstClassModule.res
    │   │   │       ├── objectTypeSpreading.res
    │   │   │       ├── polyTyp.res
    │   │   │       ├── tuple.res
    │   │   │       ├── typeConstr.res
    │   │   │       ├── var.res
    │   │   │       └── variant.res
    │   ├── dune
    │   ├── res_test.ml
    │   └── res_utf8_test.ml
    ├── tests
    │   ├── rescript.json
    │   └── src
    │   │   ├── AsInUncurriedExternals.mjs
    │   │   ├── AsInUncurriedExternals.res
    │   │   ├── Coercion.mjs
    │   │   ├── Coercion.res
    │   │   ├── DerivingAccessorsCurried.mjs
    │   │   ├── DerivingAccessorsCurried.res
    │   │   ├── DerivingAccessorsUncurried.mjs
    │   │   ├── DerivingAccessorsUncurried.res
    │   │   ├── DictInference.mjs
    │   │   ├── DictInference.res
    │   │   ├── DictInternalRepresentation.mjs
    │   │   ├── DictInternalRepresentation.res
    │   │   ├── DisambiguateOptionalFields.mjs
    │   │   ├── DisambiguateOptionalFields.res
    │   │   ├── DotDotDot.mjs
    │   │   ├── DotDotDot.res
    │   │   ├── DynamicImportModuleWithAlias.mjs
    │   │   ├── DynamicImportModuleWithAlias.res
    │   │   ├── EmptyRecord.mjs
    │   │   ├── EmptyRecord.res
    │   │   ├── EnvUnifiedOps.mjs
    │   │   ├── EnvUnifiedOps.res
    │   │   ├── Equality_over_optimization.mjs
    │   │   ├── Equality_over_optimization.res
    │   │   ├── ExternalArity.mjs
    │   │   ├── ExternalArity.res
    │   │   ├── ExternalExtension.mjs
    │   │   ├── ExternalExtension.res
    │   │   ├── FFI.mjs
    │   │   ├── FFI.res
    │   │   ├── Import.mjs
    │   │   ├── Import.res
    │   │   ├── ImportAttributes.mjs
    │   │   ├── ImportAttributes.res
    │   │   ├── ModuleWithAlias.mjs
    │   │   ├── ModuleWithAlias.res
    │   │   ├── NondetPatterMatch.mjs
    │   │   ├── NondetPatterMatch.res
    │   │   ├── PartialApplicationNoRuntimeCurry.mjs
    │   │   ├── PartialApplicationNoRuntimeCurry.res
    │   │   ├── RecordCoercion.mjs
    │   │   ├── RecordCoercion.res
    │   │   ├── RecordOrObject.mjs
    │   │   ├── RecordOrObject.res
    │   │   ├── SafePromises.mjs
    │   │   ├── SafePromises.res
    │   │   ├── UncurriedAlways.mjs
    │   │   ├── UncurriedAlways.res
    │   │   ├── UncurriedExternals.mjs
    │   │   ├── UncurriedExternals.res
    │   │   ├── UncurriedPervasives.mjs
    │   │   ├── UncurriedPervasives.res
    │   │   ├── UntaggedVariants.mjs
    │   │   ├── UntaggedVariants.res
    │   │   ├── VariantCoercion.mjs
    │   │   ├── VariantCoercion.res
    │   │   ├── VariantPatternMatchingSpreads.mjs
    │   │   ├── VariantPatternMatchingSpreads.res
    │   │   ├── VariantPatternMatchingSpreadsWithPayloads.mjs
    │   │   ├── VariantPatternMatchingSpreadsWithPayloads.res
    │   │   ├── VariantSpreads.mjs
    │   │   ├── VariantSpreads.res
    │   │   ├── a.mjs
    │   │   ├── a.res
    │   │   ├── a_recursive_type.mjs
    │   │   ├── a_recursive_type.res
    │   │   ├── a_recursive_type.resi
    │   │   ├── a_scope_bug.mjs
    │   │   ├── a_scope_bug.res
    │   │   ├── abstract_type.mjs
    │   │   ├── abstract_type.res
    │   │   ├── abstract_type.resi
    │   │   ├── acyc
    │   │       ├── a0_a1.mjs
    │   │       ├── a0_a1.res
    │   │       ├── a1_a2.mjs
    │   │       ├── a1_a2.res
    │   │       ├── a1_a2.resi
    │   │       ├── a2_a3.mjs
    │   │       ├── a2_a3.res
    │   │       ├── a3_a4.mjs
    │   │       ├── a3_a4.res
    │   │       ├── a4_a5.mjs
    │   │       ├── a4_a5.res
    │   │       ├── x.mjs
    │   │       └── x.res
    │   │   ├── adt_optimize_test.mjs
    │   │   ├── adt_optimize_test.res
    │   │   ├── alias_default_value_test.mjs
    │   │   ├── alias_default_value_test.res
    │   │   ├── alias_test.mjs
    │   │   ├── alias_test.res
    │   │   ├── alias_test.resi
    │   │   ├── and_or_simplify.mjs
    │   │   ├── and_or_simplify.res
    │   │   ├── and_or_tailcall_test.mjs
    │   │   ├── and_or_tailcall_test.res
    │   │   ├── ari_regress_test.mjs
    │   │   ├── ari_regress_test.res
    │   │   ├── ari_regress_test.resi
    │   │   ├── arith_syntax.mjs
    │   │   ├── arith_syntax.res
    │   │   ├── arity.mjs
    │   │   ├── arity.res
    │   │   ├── arity_deopt.mjs
    │   │   ├── arity_deopt.res
    │   │   ├── arity_infer.mjs
    │   │   ├── arity_infer.res
    │   │   ├── array_data_util.mjs
    │   │   ├── array_data_util.res
    │   │   ├── array_safe_get.mjs
    │   │   ├── array_safe_get.res
    │   │   ├── array_subtle_test.mjs
    │   │   ├── array_subtle_test.res
    │   │   ├── as_inline_record_test.mjs
    │   │   ├── as_inline_record_test.res
    │   │   ├── ast_abstract_test.mjs
    │   │   ├── ast_abstract_test.res
    │   │   ├── ast_mapper_unused_warning_test.mjs
    │   │   ├── ast_mapper_unused_warning_test.res
    │   │   ├── async_await.mjs
    │   │   ├── async_await.res
    │   │   ├── async_inline.mjs
    │   │   ├── async_inline.res
    │   │   ├── async_inside_loop.mjs
    │   │   ├── async_inside_loop.res
    │   │   ├── attr_test.mjs
    │   │   ├── attr_test.res
    │   │   ├── b.mjs
    │   │   ├── b.res
    │   │   ├── bal_set_mini.mjs
    │   │   ├── bal_set_mini.res
    │   │   ├── bb.mjs
    │   │   ├── bb.res
    │   │   ├── bdd.mjs
    │   │   ├── bdd.res
    │   │   ├── belt_float_test.mjs
    │   │   ├── belt_float_test.res
    │   │   ├── belt_hashmap_test.mjs
    │   │   ├── belt_hashmap_test.res
    │   │   ├── belt_hashset_int_test.mjs
    │   │   ├── belt_hashset_int_test.res
    │   │   ├── belt_int_test.mjs
    │   │   ├── belt_int_test.res
    │   │   ├── belt_internal_test.mjs
    │   │   ├── belt_internal_test.res
    │   │   ├── belt_list_test.mjs
    │   │   ├── belt_list_test.res
    │   │   ├── belt_mapint_test.mjs
    │   │   ├── belt_mapint_test.res
    │   │   ├── belt_result_alias_test.mjs
    │   │   ├── belt_result_alias_test.res
    │   │   ├── belt_sortarray_test.mjs
    │   │   ├── belt_sortarray_test.res
    │   │   ├── bench.mjs
    │   │   ├── bench.res
    │   │   ├── big_enum.mjs
    │   │   ├── big_enum.res
    │   │   ├── big_polyvar_test.mjs
    │   │   ├── big_polyvar_test.res
    │   │   ├── bigint_test.mjs
    │   │   ├── bigint_test.res
    │   │   ├── block_alias_test.mjs
    │   │   ├── block_alias_test.res
    │   │   ├── boolean_test.mjs
    │   │   ├── boolean_test.res
    │   │   ├── bs_abstract_test.mjs
    │   │   ├── bs_abstract_test.res
    │   │   ├── bs_abstract_test.resi
    │   │   ├── bs_array_test.mjs
    │   │   ├── bs_array_test.res
    │   │   ├── bs_auto_uncurry.mjs
    │   │   ├── bs_auto_uncurry.res
    │   │   ├── bs_auto_uncurry_test.mjs
    │   │   ├── bs_auto_uncurry_test.res
    │   │   ├── bs_ignore_effect.mjs
    │   │   ├── bs_ignore_effect.res
    │   │   ├── bs_ignore_test.mjs
    │   │   ├── bs_ignore_test.res
    │   │   ├── bs_map_set_dict_test.mjs
    │   │   ├── bs_map_set_dict_test.res
    │   │   ├── bs_map_test.mjs
    │   │   ├── bs_map_test.res
    │   │   ├── bs_min_max_test.mjs
    │   │   ├── bs_min_max_test.res
    │   │   ├── bs_mutable_set_test.mjs
    │   │   ├── bs_mutable_set_test.res
    │   │   ├── bs_poly_map_test.mjs
    │   │   ├── bs_poly_map_test.res
    │   │   ├── bs_poly_mutable_map_test.mjs
    │   │   ├── bs_poly_mutable_map_test.res
    │   │   ├── bs_poly_mutable_set_test.mjs
    │   │   ├── bs_poly_mutable_set_test.res
    │   │   ├── bs_poly_set_test.mjs
    │   │   ├── bs_poly_set_test.res
    │   │   ├── bs_qualified.mjs
    │   │   ├── bs_qualified.res
    │   │   ├── bs_queue_test.mjs
    │   │   ├── bs_queue_test.res
    │   │   ├── bs_rest_test.mjs
    │   │   ├── bs_rest_test.res
    │   │   ├── bs_set_int_test.mjs
    │   │   ├── bs_set_int_test.res
    │   │   ├── bs_splice_partial.mjs
    │   │   ├── bs_splice_partial.res
    │   │   ├── bs_stack_test.mjs
    │   │   ├── bs_stack_test.res
    │   │   ├── bs_string_test.mjs
    │   │   ├── bs_string_test.res
    │   │   ├── bs_unwrap_test.mjs
    │   │   ├── bs_unwrap_test.res
    │   │   ├── caml_compare_bigint_test.mjs
    │   │   ├── caml_compare_bigint_test.res
    │   │   ├── caml_compare_test.mjs
    │   │   ├── caml_compare_test.res
    │   │   ├── chain_code_test.mjs
    │   │   ├── chain_code_test.res
    │   │   ├── chn_test.mjs
    │   │   ├── chn_test.res
    │   │   ├── class_type_ffi_test.mjs
    │   │   ├── class_type_ffi_test.res
    │   │   ├── coercion_module_alias_test.mjs
    │   │   ├── coercion_module_alias_test.res
    │   │   ├── compare_test.mjs
    │   │   ├── compare_test.res
    │   │   ├── complete_parmatch_test.mjs
    │   │   ├── complete_parmatch_test.res
    │   │   ├── complex_while_loop.mjs
    │   │   ├── complex_while_loop.res
    │   │   ├── condition_compilation_test.mjs
    │   │   ├── condition_compilation_test.res
    │   │   ├── conditional
    │   │       ├── cond_a.mjs
    │   │       ├── cond_a.res
    │   │       ├── cond_a_B.mjs
    │   │       ├── cond_a_B.res
    │   │       ├── cond_a_C.mjs
    │   │       ├── cond_a_C.res
    │   │       ├── cond_a_none.mjs
    │   │       ├── cond_a_none.res
    │   │       ├── cond_b.mjs
    │   │       ├── cond_b.res
    │   │       ├── cond_c.mjs
    │   │       └── cond_c.res
    │   │   ├── config1_test.mjs
    │   │   ├── config1_test.res
    │   │   ├── console_log_test.mjs
    │   │   ├── console_log_test.res
    │   │   ├── const_block_test.mjs
    │   │   ├── const_block_test.res
    │   │   ├── const_block_test.resi
    │   │   ├── const_defs.mjs
    │   │   ├── const_defs.res
    │   │   ├── const_defs_test.mjs
    │   │   ├── const_defs_test.res
    │   │   ├── const_test.mjs
    │   │   ├── const_test.res
    │   │   ├── cont_int_fold_test.mjs
    │   │   ├── cont_int_fold_test.res
    │   │   ├── core
    │   │       ├── Core_ArrayTests.mjs
    │   │       ├── Core_ArrayTests.res
    │   │       ├── Core_DictTests.mjs
    │   │       ├── Core_DictTests.res
    │   │       ├── Core_ErrorTests.mjs
    │   │       ├── Core_ErrorTests.res
    │   │       ├── Core_FloatTests.mjs
    │   │       ├── Core_FloatTests.res
    │   │       ├── Core_ImportTests.mjs
    │   │       ├── Core_ImportTests.res
    │   │       ├── Core_IntTests.mjs
    │   │       ├── Core_IntTests.res
    │   │       ├── Core_IteratorTests.mjs
    │   │       ├── Core_IteratorTests.res
    │   │       ├── Core_JsonTests.mjs
    │   │       ├── Core_JsonTests.res
    │   │       ├── Core_NullableTests.mjs
    │   │       ├── Core_NullableTests.res
    │   │       ├── Core_ObjectTests.mjs
    │   │       ├── Core_ObjectTests.res
    │   │       ├── Core_PromiseTest.mjs
    │   │       ├── Core_PromiseTest.res
    │   │       ├── Core_RegExpTest.mjs
    │   │       ├── Core_RegExpTest.res
    │   │       ├── Core_ResultTests.mjs
    │   │       ├── Core_ResultTests.res
    │   │       ├── Core_StringTests.mjs
    │   │       ├── Core_StringTests.res
    │   │       ├── Core_TempTests.mjs
    │   │       ├── Core_TempTests.res
    │   │       ├── Core_TestSuite.mjs
    │   │       ├── Core_TestSuite.res
    │   │       ├── Core_TestTests.mjs
    │   │       ├── Core_TestTests.res
    │   │       ├── Core_TypedArrayTests.mjs
    │   │       ├── Core_TypedArrayTests.res
    │   │       ├── Test.mjs
    │   │       ├── Test.res
    │   │       └── intl
    │   │       │   ├── Core_IntlTests.mjs
    │   │       │   ├── Core_IntlTests.res
    │   │       │   ├── Core_Intl_CollatorTest.mjs
    │   │       │   ├── Core_Intl_CollatorTest.res
    │   │       │   ├── Core_Intl_DateTimeFormatTest.mjs
    │   │       │   ├── Core_Intl_DateTimeFormatTest.res
    │   │       │   ├── Core_Intl_ListFormatTest.mjs
    │   │       │   ├── Core_Intl_ListFormatTest.res
    │   │       │   ├── Core_Intl_LocaleTest.mjs
    │   │       │   ├── Core_Intl_LocaleTest.res
    │   │       │   ├── Core_Intl_NumberFormatTest.mjs
    │   │       │   ├── Core_Intl_NumberFormatTest.res
    │   │       │   ├── Core_Intl_PluralRulesTest.mjs
    │   │       │   ├── Core_Intl_PluralRulesTest.res
    │   │       │   ├── Core_Intl_RelativeTimeFormatTest.mjs
    │   │       │   ├── Core_Intl_RelativeTimeFormatTest.res
    │   │       │   ├── Core_Intl_SegmenterTest.mjs
    │   │       │   └── Core_Intl_SegmenterTest.res
    │   │   ├── cps_test.mjs
    │   │   ├── cps_test.res
    │   │   ├── cross_module_inline_test.mjs
    │   │   ├── cross_module_inline_test.res
    │   │   ├── custom_error_test.mjs
    │   │   ├── custom_error_test.res
    │   │   ├── debug_keep_test.mjs
    │   │   ├── debug_keep_test.res
    │   │   ├── debug_mode_value.mjs
    │   │   ├── debug_mode_value.res
    │   │   ├── debug_tmp.mjs
    │   │   ├── debug_tmp.res
    │   │   ├── debugger_test.mjs
    │   │   ├── debugger_test.res
    │   │   ├── default_export_test.mjs
    │   │   ├── default_export_test.res
    │   │   ├── defunctor_make_test.mjs
    │   │   ├── defunctor_make_test.res
    │   │   ├── demo_int_map.mjs
    │   │   ├── demo_int_map.res
    │   │   ├── demo_int_map.resi
    │   │   ├── demo_page.mjs
    │   │   ├── demo_page.res
    │   │   ├── demo_pipe.mjs
    │   │   ├── demo_pipe.res
    │   │   ├── derive_projector_test.mjs
    │   │   ├── derive_projector_test.res
    │   │   ├── derive_projector_test.resi
    │   │   ├── directives.mjs
    │   │   ├── directives.res
    │   │   ├── div_by_zero_test.mjs
    │   │   ├── div_by_zero_test.res
    │   │   ├── dollar_escape_test.mjs
    │   │   ├── dollar_escape_test.res
    │   │   ├── earger_curry_test.mjs
    │   │   ├── earger_curry_test.res
    │   │   ├── effect.mjs
    │   │   ├── effect.res
    │   │   ├── epsilon_test.mjs
    │   │   ├── epsilon_test.res
    │   │   ├── equal_box_test.mjs
    │   │   ├── equal_box_test.res
    │   │   ├── equal_exception_test.mjs
    │   │   ├── equal_exception_test.res
    │   │   ├── equal_test.mjs
    │   │   ├── equal_test.res
    │   │   ├── es6_export.mjs
    │   │   ├── es6_export.res
    │   │   ├── es6_import.mjs
    │   │   ├── es6_import.res
    │   │   ├── escape_esmodule.mjs
    │   │   ├── escape_esmodule.res
    │   │   ├── esmodule_ref.mjs
    │   │   ├── esmodule_ref.res
    │   │   ├── event_ffi.mjs
    │   │   ├── event_ffi.res
    │   │   ├── exception_alias.mjs
    │   │   ├── exception_alias.res
    │   │   ├── exception_raise_test.mjs
    │   │   ├── exception_raise_test.res
    │   │   ├── exception_rebound_err_test.mjs
    │   │   ├── exception_rebound_err_test.res
    │   │   ├── exception_value_test.mjs
    │   │   ├── exception_value_test.res
    │   │   ├── exotic_labels_test.mjs
    │   │   ├── exotic_labels_test.res
    │   │   ├── exponentiation_test.mjs
    │   │   ├── exponentiation_test.res
    │   │   ├── export_keyword.mjs
    │   │   ├── export_keyword.res
    │   │   ├── ext_array_test.mjs
    │   │   ├── ext_array_test.res
    │   │   ├── ext_pervasives_test.mjs
    │   │   ├── ext_pervasives_test.res
    │   │   ├── ext_pervasives_test.resi
    │   │   ├── extensible_variant_test.mjs
    │   │   ├── extensible_variant_test.res
    │   │   ├── external_ppx.mjs
    │   │   ├── external_ppx.res
    │   │   ├── external_ppx2.mjs
    │   │   ├── external_ppx2.res
    │   │   ├── ffi_arity_test.mjs
    │   │   ├── ffi_arity_test.res
    │   │   ├── ffi_array_test.mjs
    │   │   ├── ffi_array_test.res
    │   │   ├── ffi_js_test.mjs
    │   │   ├── ffi_js_test.res
    │   │   ├── ffi_splice_test.mjs
    │   │   ├── ffi_splice_test.res
    │   │   ├── ffi_test.mjs
    │   │   ├── ffi_test.res
    │   │   ├── fib.mjs
    │   │   ├── fib.res
    │   │   ├── field_flattening_opt.mjs
    │   │   ├── field_flattening_opt.res
    │   │   ├── flattern_order_test.mjs
    │   │   ├── flattern_order_test.res
    │   │   ├── flexible_array_test.mjs
    │   │   ├── flexible_array_test.res
    │   │   ├── float_array.mjs
    │   │   ├── float_array.res
    │   │   ├── float_record.mjs
    │   │   ├── float_record.res
    │   │   ├── float_record.resi
    │   │   ├── float_test.mjs
    │   │   ├── float_test.res
    │   │   ├── for_loop_test.mjs
    │   │   ├── for_loop_test.res
    │   │   ├── for_side_effect_test.mjs
    │   │   ├── for_side_effect_test.res
    │   │   ├── format_regression.mjs
    │   │   ├── format_regression.res
    │   │   ├── fun_pattern_match.mjs
    │   │   ├── fun_pattern_match.res
    │   │   ├── function_directives.mjs
    │   │   ├── function_directives.res
    │   │   ├── function_directives_no_inline.mjs
    │   │   ├── function_directives_no_inline.res
    │   │   ├── functor_app_test.mjs
    │   │   ├── functor_app_test.res
    │   │   ├── functor_def.mjs
    │   │   ├── functor_def.res
    │   │   ├── functor_ffi.mjs
    │   │   ├── functor_ffi.res
    │   │   ├── functor_inst.mjs
    │   │   ├── functor_inst.res
    │   │   ├── functors.mjs
    │   │   ├── functors.res
    │   │   ├── functors_one_arg_at_a_time.mjs
    │   │   ├── functors_one_arg_at_a_time.res
    │   │   ├── gbk.mjs
    │   │   ├── gbk.res
    │   │   ├── gentTypeReTest.mjs
    │   │   ├── gentTypeReTest.res
    │   │   ├── glob_test_add.mjs
    │   │   ├── glob_test_add.res
    │   │   ├── glob_test_u.mjs
    │   │   ├── glob_test_u.res
    │   │   ├── glob_u.mjs
    │   │   ├── glob_u.res
    │   │   ├── glob_x.mjs
    │   │   ├── glob_x.res
    │   │   ├── global_exception_regression_test.mjs
    │   │   ├── global_exception_regression_test.res
    │   │   ├── global_module_alias_test.mjs
    │   │   ├── global_module_alias_test.res
    │   │   ├── google_closure_test.mjs
    │   │   ├── google_closure_test.res
    │   │   ├── gpr496_test.mjs
    │   │   ├── gpr496_test.res
    │   │   ├── gpr_1072.mjs
    │   │   ├── gpr_1072.res
    │   │   ├── gpr_1072_reg.mjs
    │   │   ├── gpr_1072_reg.res
    │   │   ├── gpr_1150.mjs
    │   │   ├── gpr_1150.res
    │   │   ├── gpr_1170.mjs
    │   │   ├── gpr_1170.res
    │   │   ├── gpr_1240_missing_unbox.mjs
    │   │   ├── gpr_1240_missing_unbox.res
    │   │   ├── gpr_1245_test.mjs
    │   │   ├── gpr_1245_test.res
    │   │   ├── gpr_1268.mjs
    │   │   ├── gpr_1268.res
    │   │   ├── gpr_1409_test.mjs
    │   │   ├── gpr_1409_test.res
    │   │   ├── gpr_1423_app_test.mjs
    │   │   ├── gpr_1423_app_test.res
    │   │   ├── gpr_1423_nav.mjs
    │   │   ├── gpr_1423_nav.res
    │   │   ├── gpr_1438.mjs
    │   │   ├── gpr_1438.res
    │   │   ├── gpr_1481.mjs
    │   │   ├── gpr_1481.res
    │   │   ├── gpr_1484.mjs
    │   │   ├── gpr_1484.res
    │   │   ├── gpr_1539_test.mjs
    │   │   ├── gpr_1539_test.res
    │   │   ├── gpr_1658_test.mjs
    │   │   ├── gpr_1658_test.res
    │   │   ├── gpr_1667_test.mjs
    │   │   ├── gpr_1667_test.res
    │   │   ├── gpr_1692_test.mjs
    │   │   ├── gpr_1692_test.res
    │   │   ├── gpr_1698_test.mjs
    │   │   ├── gpr_1698_test.res
    │   │   ├── gpr_1701_test.mjs
    │   │   ├── gpr_1701_test.res
    │   │   ├── gpr_1716_test.mjs
    │   │   ├── gpr_1716_test.res
    │   │   ├── gpr_1717_test.mjs
    │   │   ├── gpr_1717_test.res
    │   │   ├── gpr_1728_test.mjs
    │   │   ├── gpr_1728_test.res
    │   │   ├── gpr_1749_test.mjs
    │   │   ├── gpr_1749_test.res
    │   │   ├── gpr_1759_test.mjs
    │   │   ├── gpr_1759_test.res
    │   │   ├── gpr_1760_test.mjs
    │   │   ├── gpr_1760_test.res
    │   │   ├── gpr_1762_test.mjs
    │   │   ├── gpr_1762_test.res
    │   │   ├── gpr_1817_test.mjs
    │   │   ├── gpr_1817_test.res
    │   │   ├── gpr_1822_test.mjs
    │   │   ├── gpr_1822_test.res
    │   │   ├── gpr_1891_test.mjs
    │   │   ├── gpr_1891_test.res
    │   │   ├── gpr_1943_test.mjs
    │   │   ├── gpr_1943_test.res
    │   │   ├── gpr_1946_test.mjs
    │   │   ├── gpr_1946_test.res
    │   │   ├── gpr_2316_test.mjs
    │   │   ├── gpr_2316_test.res
    │   │   ├── gpr_2352_test.mjs
    │   │   ├── gpr_2352_test.res
    │   │   ├── gpr_2413_test.mjs
    │   │   ├── gpr_2413_test.res
    │   │   ├── gpr_2474.mjs
    │   │   ├── gpr_2474.res
    │   │   ├── gpr_2487.mjs
    │   │   ├── gpr_2487.res
    │   │   ├── gpr_2503_test.mjs
    │   │   ├── gpr_2503_test.res
    │   │   ├── gpr_2608_test.mjs
    │   │   ├── gpr_2608_test.res
    │   │   ├── gpr_2614_test.mjs
    │   │   ├── gpr_2614_test.res
    │   │   ├── gpr_2633_test.mjs
    │   │   ├── gpr_2633_test.res
    │   │   ├── gpr_2642_test.mjs
    │   │   ├── gpr_2642_test.res
    │   │   ├── gpr_2682_test.mjs
    │   │   ├── gpr_2682_test.res
    │   │   ├── gpr_2700_test.mjs
    │   │   ├── gpr_2700_test.res
    │   │   ├── gpr_2731_test.mjs
    │   │   ├── gpr_2731_test.res
    │   │   ├── gpr_2789_test.mjs
    │   │   ├── gpr_2789_test.res
    │   │   ├── gpr_2931_test.mjs
    │   │   ├── gpr_2931_test.res
    │   │   ├── gpr_3142_test.mjs
    │   │   ├── gpr_3142_test.res
    │   │   ├── gpr_3154_test.mjs
    │   │   ├── gpr_3154_test.res
    │   │   ├── gpr_3209_test.mjs
    │   │   ├── gpr_3209_test.res
    │   │   ├── gpr_3492_test.mjs
    │   │   ├── gpr_3492_test.res
    │   │   ├── gpr_3519_jsx_test.mjs
    │   │   ├── gpr_3519_jsx_test.res
    │   │   ├── gpr_3519_test.mjs
    │   │   ├── gpr_3519_test.res
    │   │   ├── gpr_3536_test.mjs
    │   │   ├── gpr_3536_test.res
    │   │   ├── gpr_3546_test.mjs
    │   │   ├── gpr_3546_test.res
    │   │   ├── gpr_3548_test.mjs
    │   │   ├── gpr_3548_test.res
    │   │   ├── gpr_3549_test.mjs
    │   │   ├── gpr_3549_test.res
    │   │   ├── gpr_3566_drive_test.mjs
    │   │   ├── gpr_3566_drive_test.res
    │   │   ├── gpr_3566_test.mjs
    │   │   ├── gpr_3566_test.res
    │   │   ├── gpr_3595_test.mjs
    │   │   ├── gpr_3595_test.res
    │   │   ├── gpr_3609_test.mjs
    │   │   ├── gpr_3609_test.res
    │   │   ├── gpr_3697_test.mjs
    │   │   ├── gpr_3697_test.res
    │   │   ├── gpr_373_test.mjs
    │   │   ├── gpr_373_test.res
    │   │   ├── gpr_3770_test.mjs
    │   │   ├── gpr_3770_test.res
    │   │   ├── gpr_3852_alias.mjs
    │   │   ├── gpr_3852_alias.res
    │   │   ├── gpr_3852_alias_reify.mjs
    │   │   ├── gpr_3852_alias_reify.res
    │   │   ├── gpr_3852_alias_reify.resi
    │   │   ├── gpr_3852_effect.mjs
    │   │   ├── gpr_3852_effect.res
    │   │   ├── gpr_3865.mjs
    │   │   ├── gpr_3865.res
    │   │   ├── gpr_3865_bar.mjs
    │   │   ├── gpr_3865_bar.res
    │   │   ├── gpr_3865_foo.mjs
    │   │   ├── gpr_3865_foo.res
    │   │   ├── gpr_3875_test.mjs
    │   │   ├── gpr_3875_test.res
    │   │   ├── gpr_3877_test.mjs
    │   │   ├── gpr_3877_test.res
    │   │   ├── gpr_3895_test.mjs
    │   │   ├── gpr_3895_test.res
    │   │   ├── gpr_3897_test.mjs
    │   │   ├── gpr_3897_test.res
    │   │   ├── gpr_3931_test.mjs
    │   │   ├── gpr_3931_test.res
    │   │   ├── gpr_3980_test.mjs
    │   │   ├── gpr_3980_test.res
    │   │   ├── gpr_4025_test.mjs
    │   │   ├── gpr_4025_test.res
    │   │   ├── gpr_4069_test.mjs
    │   │   ├── gpr_4069_test.res
    │   │   ├── gpr_4265_test.mjs
    │   │   ├── gpr_4265_test.res
    │   │   ├── gpr_4274_test.mjs
    │   │   ├── gpr_4274_test.res
    │   │   ├── gpr_4280_test.mjs
    │   │   ├── gpr_4280_test.res
    │   │   ├── gpr_4407_test.mjs
    │   │   ├── gpr_4407_test.res
    │   │   ├── gpr_441.mjs
    │   │   ├── gpr_441.res
    │   │   ├── gpr_4442_test.mjs
    │   │   ├── gpr_4442_test.res
    │   │   ├── gpr_4491_test.mjs
    │   │   ├── gpr_4491_test.res
    │   │   ├── gpr_4494_test.mjs
    │   │   ├── gpr_4494_test.res
    │   │   ├── gpr_4519_test.mjs
    │   │   ├── gpr_4519_test.res
    │   │   ├── gpr_459_test.mjs
    │   │   ├── gpr_459_test.res
    │   │   ├── gpr_4632.mjs
    │   │   ├── gpr_4632.res
    │   │   ├── gpr_4639_test.mjs
    │   │   ├── gpr_4639_test.res
    │   │   ├── gpr_4900_test.mjs
    │   │   ├── gpr_4900_test.res
    │   │   ├── gpr_4924_test.mjs
    │   │   ├── gpr_4924_test.res
    │   │   ├── gpr_4931.mjs
    │   │   ├── gpr_4931.res
    │   │   ├── gpr_4931_allow.mjs
    │   │   ├── gpr_4931_allow.res
    │   │   ├── gpr_5071_test.mjs
    │   │   ├── gpr_5071_test.res
    │   │   ├── gpr_5169_test.mjs
    │   │   ├── gpr_5169_test.res
    │   │   ├── gpr_5218_test.mjs
    │   │   ├── gpr_5218_test.res
    │   │   ├── gpr_5280_optimize_test.mjs
    │   │   ├── gpr_5280_optimize_test.res
    │   │   ├── gpr_5557.mjs
    │   │   ├── gpr_5557.res
    │   │   ├── gpr_5753.mjs
    │   │   ├── gpr_5753.res
    │   │   ├── gpr_658.mjs
    │   │   ├── gpr_658.res
    │   │   ├── gpr_7012_test.mjs
    │   │   ├── gpr_7012_test.res
    │   │   ├── gpr_7431_test.mjs
    │   │   ├── gpr_7431_test.res
    │   │   ├── gpr_858_test.mjs
    │   │   ├── gpr_858_test.res
    │   │   ├── gpr_858_unit2_test.mjs
    │   │   ├── gpr_858_unit2_test.res
    │   │   ├── gpr_904_test.mjs
    │   │   ├── gpr_904_test.res
    │   │   ├── gpr_974_test.mjs
    │   │   ├── gpr_974_test.res
    │   │   ├── gpr_977_test.mjs
    │   │   ├── gpr_977_test.res
    │   │   ├── gpr_return_type_unused_attribute.mjs
    │   │   ├── gpr_return_type_unused_attribute.res
    │   │   ├── gray_code_test.mjs
    │   │   ├── gray_code_test.res
    │   │   ├── guide_for_ext.mjs
    │   │   ├── guide_for_ext.res
    │   │   ├── hash_collision_test.mjs
    │   │   ├── hash_collision_test.res
    │   │   ├── hash_sugar_desugar.mjs
    │   │   ├── hash_sugar_desugar.res
    │   │   ├── hash_sugar_desugar.resi
    │   │   ├── hash_test.mjs
    │   │   ├── hash_test.res
    │   │   ├── hello.foo.mjs
    │   │   ├── hello.foo.res
    │   │   ├── hello_res.mjs
    │   │   ├── hello_res.res
    │   │   ├── hello_res.resi
    │   │   ├── ident_mangles.mjs
    │   │   ├── ident_mangles.res
    │   │   ├── ignore_test.mjs
    │   │   ├── ignore_test.res
    │   │   ├── ignore_uncurry_attribute.mjs
    │   │   ├── ignore_uncurry_attribute.res
    │   │   ├── import2.mjs
    │   │   ├── import2.res
    │   │   ├── import_external.mjs
    │   │   ├── import_external.res
    │   │   ├── import_side_effect.mjs
    │   │   ├── import_side_effect.res
    │   │   ├── import_side_effect_free.mjs
    │   │   ├── import_side_effect_free.res
    │   │   ├── include_side_effect.mjs
    │   │   ├── include_side_effect.res
    │   │   ├── include_side_effect_free.mjs
    │   │   ├── include_side_effect_free.res
    │   │   ├── incomplete_toplevel_test.mjs
    │   │   ├── incomplete_toplevel_test.res
    │   │   ├── infer_type_test.mjs
    │   │   ├── infer_type_test.res
    │   │   ├── infer_type_test.resi
    │   │   ├── inline_condition_with_pattern_matching.mjs
    │   │   ├── inline_condition_with_pattern_matching.res
    │   │   ├── inline_const.mjs
    │   │   ├── inline_const.res
    │   │   ├── inline_const.resi
    │   │   ├── inline_const_test.mjs
    │   │   ├── inline_const_test.res
    │   │   ├── inline_edge_cases.mjs
    │   │   ├── inline_edge_cases.res
    │   │   ├── inline_edge_cases.resi
    │   │   ├── inline_map2_test.mjs
    │   │   ├── inline_map2_test.res
    │   │   ├── inline_map_demo.mjs
    │   │   ├── inline_map_demo.res
    │   │   ├── inline_map_test.mjs
    │   │   ├── inline_map_test.res
    │   │   ├── inline_map_test.resi
    │   │   ├── inline_record_test.mjs
    │   │   ├── inline_record_test.res
    │   │   ├── inline_regression_test.mjs
    │   │   ├── inline_regression_test.res
    │   │   ├── inline_string_test.mjs
    │   │   ├── inline_string_test.res
    │   │   ├── inner_call.mjs
    │   │   ├── inner_call.res
    │   │   ├── inner_define.mjs
    │   │   ├── inner_define.res
    │   │   ├── inner_define.resi
    │   │   ├── inner_unused.mjs
    │   │   ├── inner_unused.res
    │   │   ├── installation_test.mjs
    │   │   ├── installation_test.res
    │   │   ├── int_map.mjs
    │   │   ├── int_map.res
    │   │   ├── int_overflow_test.mjs
    │   │   ├── int_overflow_test.res
    │   │   ├── int_poly_var.mjs
    │   │   ├── int_poly_var.res
    │   │   ├── int_switch_test.mjs
    │   │   ├── int_switch_test.res
    │   │   ├── internal_unused_test.mjs
    │   │   ├── internal_unused_test.res
    │   │   ├── joinClasses.mjs
    │   │   ├── js_array_test.mjs
    │   │   ├── js_array_test.res
    │   │   ├── js_bool_test.mjs
    │   │   ├── js_bool_test.res
    │   │   ├── js_date_test.mjs
    │   │   ├── js_date_test.res
    │   │   ├── js_dict_test.mjs
    │   │   ├── js_dict_test.res
    │   │   ├── js_exception_catch_test.mjs
    │   │   ├── js_exception_catch_test.res
    │   │   ├── js_float_test.mjs
    │   │   ├── js_float_test.res
    │   │   ├── js_global_test.mjs
    │   │   ├── js_global_test.res
    │   │   ├── js_int_test.mjs
    │   │   ├── js_int_test.res
    │   │   ├── js_json_test.mjs
    │   │   ├── js_json_test.res
    │   │   ├── js_math_test.mjs
    │   │   ├── js_math_test.res
    │   │   ├── js_null_test.mjs
    │   │   ├── js_null_test.res
    │   │   ├── js_null_undefined_test.mjs
    │   │   ├── js_null_undefined_test.res
    │   │   ├── js_nullable_test.mjs
    │   │   ├── js_nullable_test.res
    │   │   ├── js_obj_test.mjs
    │   │   ├── js_obj_test.res
    │   │   ├── js_option_test.mjs
    │   │   ├── js_option_test.res
    │   │   ├── js_re_test.mjs
    │   │   ├── js_re_test.res
    │   │   ├── js_string_test.mjs
    │   │   ├── js_string_test.res
    │   │   ├── js_undefined_test.mjs
    │   │   ├── js_undefined_test.res
    │   │   ├── js_val.mjs
    │   │   ├── js_val.res
    │   │   ├── json_decorders.mjs
    │   │   ├── json_decorders.res
    │   │   ├── jsoo_400_test.mjs
    │   │   ├── jsoo_400_test.res
    │   │   ├── jsoo_485_test.mjs
    │   │   ├── jsoo_485_test.res
    │   │   ├── jsx_optional_props_test.mjs
    │   │   ├── jsx_optional_props_test.res
    │   │   ├── jsx_preserve_test.mjs
    │   │   ├── jsx_preserve_test.res
    │   │   ├── jsxv4_newtype.mjs
    │   │   ├── jsxv4_newtype.res
    │   │   ├── keep_uncurry_attribute.mjs
    │   │   ├── keep_uncurry_attribute.res
    │   │   ├── key_word_property.mjs
    │   │   ├── key_word_property.res
    │   │   ├── key_word_property2.mjs
    │   │   ├── key_word_property2.res
    │   │   ├── key_word_property_plus_test.mjs
    │   │   ├── key_word_property_plus_test.res
    │   │   ├── label_uncurry.mjs
    │   │   ├── label_uncurry.res
    │   │   ├── large_integer_pat.mjs
    │   │   ├── large_integer_pat.res
    │   │   ├── large_record_duplication_test.mjs
    │   │   ├── large_record_duplication_test.res
    │   │   ├── largest_int_flow.mjs
    │   │   ├── largest_int_flow.res
    │   │   ├── lazy_demo.mjs
    │   │   ├── lazy_demo.res
    │   │   ├── lazy_test.mjs
    │   │   ├── lazy_test.res
    │   │   ├── lib_js_test.mjs
    │   │   ├── lib_js_test.res
    │   │   ├── limits_test.mjs
    │   │   ├── limits_test.res
    │   │   ├── list_test.mjs
    │   │   ├── list_test.res
    │   │   ├── local_exception_test.mjs
    │   │   ├── local_exception_test.res
    │   │   ├── loop_regression_test.mjs
    │   │   ├── loop_regression_test.res
    │   │   ├── map_find_test.mjs
    │   │   ├── map_find_test.res
    │   │   ├── mario_game.mjs
    │   │   ├── mario_game.res
    │   │   ├── meth_annotation.mjs
    │   │   ├── meth_annotation.res
    │   │   ├── method_name_test.mjs
    │   │   ├── method_name_test.res
    │   │   ├── method_string_name.mjs
    │   │   ├── method_string_name.res
    │   │   ├── minimal_test.mjs
    │   │   ├── minimal_test.res
    │   │   ├── miss_colon_test.mjs
    │   │   ├── miss_colon_test.res
    │   │   ├── mocha.mjs
    │   │   ├── mocha.res
    │   │   ├── mock_mt.mjs
    │   │   ├── mock_mt.res
    │   │   ├── module_alias_test.mjs
    │   │   ├── module_alias_test.res
    │   │   ├── module_as_class_ffi.mjs
    │   │   ├── module_as_class_ffi.res
    │   │   ├── module_as_function.mjs
    │   │   ├── module_as_function.res
    │   │   ├── module_missing_conversion.mjs
    │   │   ├── module_missing_conversion.res
    │   │   ├── module_parameter_test.mjs
    │   │   ├── module_parameter_test.res
    │   │   ├── module_splice_test.mjs
    │   │   ├── module_splice_test.res
    │   │   ├── module_test.mjs
    │   │   ├── module_test.res
    │   │   ├── more_poly_variant_test.mjs
    │   │   ├── more_poly_variant_test.res
    │   │   ├── more_uncurry.mjs
    │   │   ├── more_uncurry.res
    │   │   ├── move_ref_assignment.mjs
    │   │   ├── move_ref_assignment.res
    │   │   ├── mpr_6033_test.mjs
    │   │   ├── mpr_6033_test.res
    │   │   ├── mt.mjs
    │   │   ├── mt.res
    │   │   ├── mt.resi
    │   │   ├── mt_global.mjs
    │   │   ├── mt_global.res
    │   │   ├── mt_global.resi
    │   │   ├── multiple_tags.mjs
    │   │   ├── multiple_tags.res
    │   │   ├── mutable_obj_test.mjs
    │   │   ├── mutable_obj_test.res
    │   │   ├── mutable_uncurry_test.mjs
    │   │   ├── mutable_uncurry_test.res
    │   │   ├── mutual_non_recursive_type.mjs
    │   │   ├── mutual_non_recursive_type.res
    │   │   ├── name_mangle_test.mjs
    │   │   ├── name_mangle_test.res
    │   │   ├── nested_include.mjs
    │   │   ├── nested_include.res
    │   │   ├── nested_module_alias.mjs
    │   │   ├── nested_module_alias.res
    │   │   ├── nested_obj_literal.mjs
    │   │   ├── nested_obj_literal.res
    │   │   ├── nested_obj_test.mjs
    │   │   ├── nested_obj_test.res
    │   │   ├── nested_pattern_match_test.mjs
    │   │   ├── nested_pattern_match_test.res
    │   │   ├── nested_records.mjs
    │   │   ├── nested_records.res
    │   │   ├── nested_records_with_type_params.mjs
    │   │   ├── nested_records_with_type_params.res
    │   │   ├── noassert.mjs
    │   │   ├── noassert.res
    │   │   ├── node_assert.mjs
    │   │   ├── node_assert.res
    │   │   ├── node_path_test.mjs
    │   │   ├── node_path_test.res
    │   │   ├── obj_literal_ppx.mjs
    │   │   ├── obj_literal_ppx.res
    │   │   ├── obj_literal_ppx_test.mjs
    │   │   ├── obj_literal_ppx_test.res
    │   │   ├── obj_magic_test.mjs
    │   │   ├── obj_magic_test.res
    │   │   ├── obj_type_test.mjs
    │   │   ├── obj_type_test.res
    │   │   ├── ocaml_compat
    │   │       ├── Ocaml_Array.mjs
    │   │       ├── Ocaml_Array.res
    │   │       ├── Ocaml_Array.resi
    │   │       ├── Ocaml_Hashtbl.mjs
    │   │       ├── Ocaml_Hashtbl.res
    │   │       ├── Ocaml_Hashtbl.resi
    │   │       ├── Ocaml_List.mjs
    │   │       ├── Ocaml_List.res
    │   │       ├── Ocaml_List.resi
    │   │       ├── Ocaml_String.mjs
    │   │       ├── Ocaml_String.res
    │   │       └── Ocaml_String.resi
    │   │   ├── offset.mjs
    │   │   ├── offset.res
    │   │   ├── omit_trailing_undefined_in_external_calls.mjs
    │   │   ├── omit_trailing_undefined_in_external_calls.res
    │   │   ├── option_encoding_test.mjs
    │   │   ├── option_encoding_test.res
    │   │   ├── option_repr_test.mjs
    │   │   ├── option_repr_test.res
    │   │   ├── option_wrapping_test.mjs
    │   │   ├── option_wrapping_test.res
    │   │   ├── optional_ffi_test.mjs
    │   │   ├── optional_ffi_test.res
    │   │   ├── optional_regression_test.mjs
    │   │   ├── optional_regression_test.res
    │   │   ├── pattern_match_json.mjs
    │   │   ├── pattern_match_json.res
    │   │   ├── pipe_send_readline.mjs
    │   │   ├── pipe_send_readline.res
    │   │   ├── pipe_syntax.mjs
    │   │   ├── pipe_syntax.res
    │   │   ├── pm_opt_fields_regression.mjs
    │   │   ├── pm_opt_fields_regression.res
    │   │   ├── poly_empty_array.mjs
    │   │   ├── poly_empty_array.res
    │   │   ├── poly_variant_test.mjs
    │   │   ├── poly_variant_test.res
    │   │   ├── poly_variant_test.resi
    │   │   ├── polymorphic_raw_test.mjs
    │   │   ├── polymorphic_raw_test.res
    │   │   ├── polymorphism_test.mjs
    │   │   ├── polymorphism_test.res
    │   │   ├── polymorphism_test.resi
    │   │   ├── polyvar_convert.mjs
    │   │   ├── polyvar_convert.res
    │   │   ├── polyvar_test.mjs
    │   │   ├── polyvar_test.res
    │   │   ├── ppx_apply_test.mjs
    │   │   ├── ppx_apply_test.res
    │   │   ├── pq_test.mjs
    │   │   ├── pq_test.res
    │   │   ├── pr6726.mjs
    │   │   ├── pr6726.res
    │   │   ├── prepend_data_ffi.mjs
    │   │   ├── prepend_data_ffi.res
    │   │   ├── print_alpha_test.mjs
    │   │   ├── print_alpha_test.res
    │   │   ├── queue_402.mjs
    │   │   ├── queue_402.res
    │   │   ├── raw_arity.mjs
    │   │   ├── raw_arity.res
    │   │   ├── raw_output_test.mjs
    │   │   ├── raw_output_test.res
    │   │   ├── raw_pure_test.mjs
    │   │   ├── raw_pure_test.res
    │   │   ├── rbset.mjs
    │   │   ├── rbset.res
    │   │   ├── react.mjs
    │   │   ├── react.res
    │   │   ├── reactDOM.mjs
    │   │   ├── reactDOM.res
    │   │   ├── reactDOMServer.mjs
    │   │   ├── reactDOMServer.res
    │   │   ├── reactEvent.mjs
    │   │   ├── reactEvent.res
    │   │   ├── reactEvent.resi
    │   │   ├── reactTestUtils.mjs
    │   │   ├── reactTestUtils.res
    │   │   ├── reactTestUtils.resi
    │   │   ├── reasonReact.mjs
    │   │   ├── reasonReact.res
    │   │   ├── reasonReact.resi
    │   │   ├── reasonReactCompat.mjs
    │   │   ├── reasonReactCompat.res
    │   │   ├── reasonReactCompat.resi
    │   │   ├── reasonReactOptimizedCreateClass.mjs
    │   │   ├── reasonReactOptimizedCreateClass.res
    │   │   ├── reasonReactRouter.mjs
    │   │   ├── reasonReactRouter.res
    │   │   ├── reasonReactRouter.resi
    │   │   ├── rebind_module.mjs
    │   │   ├── rebind_module.res
    │   │   ├── rebind_module_test.mjs
    │   │   ├── rebind_module_test.res
    │   │   ├── rec_array_test.mjs
    │   │   ├── rec_array_test.res
    │   │   ├── rec_fun_test.mjs
    │   │   ├── rec_fun_test.res
    │   │   ├── rec_module_opt.mjs
    │   │   ├── rec_module_opt.res
    │   │   ├── rec_module_test.mjs
    │   │   ├── rec_module_test.res
    │   │   ├── recmodule.mjs
    │   │   ├── recmodule.res
    │   │   ├── record_debug_test.mjs
    │   │   ├── record_debug_test.res
    │   │   ├── record_extension_test.mjs
    │   │   ├── record_extension_test.res
    │   │   ├── record_name_test.mjs
    │   │   ├── record_name_test.res
    │   │   ├── record_regression.mjs
    │   │   ├── record_regression.res
    │   │   ├── record_type_spread.mjs
    │   │   ├── record_type_spread.res
    │   │   ├── record_with_test.mjs
    │   │   ├── record_with_test.res
    │   │   ├── recursive_module.mjs
    │   │   ├── recursive_module.res
    │   │   ├── recursive_module_test.mjs
    │   │   ├── recursive_module_test.res
    │   │   ├── recursive_react_component.mjs
    │   │   ├── recursive_react_component.res
    │   │   ├── recursive_records_test.mjs
    │   │   ├── recursive_records_test.res
    │   │   ├── recursive_unbound_module_test.mjs
    │   │   ├── recursive_unbound_module_test.res
    │   │   ├── regression_print.mjs
    │   │   ├── regression_print.res
    │   │   ├── relative_path.mjs
    │   │   ├── relative_path.res
    │   │   ├── res_debug.mjs
    │   │   ├── res_debug.res
    │   │   ├── return_check.mjs
    │   │   ├── return_check.res
    │   │   ├── runtime_encoding_test.mjs
    │   │   ├── runtime_encoding_test.res
    │   │   ├── set_annotation.mjs
    │   │   ├── set_annotation.res
    │   │   ├── set_gen.mjs
    │   │   ├── set_gen.res
    │   │   ├── side_effect.mjs
    │   │   ├── side_effect.res
    │   │   ├── side_effect2.mjs
    │   │   ├── side_effect2.res
    │   │   ├── side_effect_free.mjs
    │   │   ├── side_effect_free.res
    │   │   ├── simplify_lambda_632o.mjs
    │   │   ├── simplify_lambda_632o.res
    │   │   ├── singular_unit_test.mjs
    │   │   ├── singular_unit_test.res
    │   │   ├── small_inline_test.mjs
    │   │   ├── small_inline_test.res
    │   │   ├── splice_test.mjs
    │   │   ├── splice_test.res
    │   │   ├── string_bound_get_test.mjs
    │   │   ├── string_bound_get_test.res
    │   │   ├── string_constant_compare.mjs
    │   │   ├── string_constant_compare.res
    │   │   ├── string_set.mjs
    │   │   ├── string_set.res
    │   │   ├── string_set_test.mjs
    │   │   ├── string_set_test.res
    │   │   ├── string_unicode_test.mjs
    │   │   ├── string_unicode_test.res
    │   │   ├── stringmatch_test.mjs
    │   │   ├── stringmatch_test.res
    │   │   ├── submodule.mjs
    │   │   ├── submodule.res
    │   │   ├── submodule_call.mjs
    │   │   ├── submodule_call.res
    │   │   ├── switch_case_test.mjs
    │   │   ├── switch_case_test.res
    │   │   ├── switch_string.mjs
    │   │   ├── switch_string.res
    │   │   ├── tagged_template_lib.js
    │   │   ├── tagged_template_test.mjs
    │   │   ├── tagged_template_test.res
    │   │   ├── tailcall_inline_test.mjs
    │   │   ├── tailcall_inline_test.res
    │   │   ├── template.mjs
    │   │   ├── template.res
    │   │   ├── test2.mjs
    │   │   ├── test2.res
    │   │   ├── test_ari.mjs
    │   │   ├── test_ari.res
    │   │   ├── test_array.mjs
    │   │   ├── test_array.res
    │   │   ├── test_array_append.mjs
    │   │   ├── test_array_append.res
    │   │   ├── test_bool_equal.mjs
    │   │   ├── test_bool_equal.res
    │   │   ├── test_bs_this.mjs
    │   │   ├── test_bs_this.res
    │   │   ├── test_case_opt_collision.mjs
    │   │   ├── test_case_opt_collision.res
    │   │   ├── test_case_set.mjs
    │   │   ├── test_case_set.res
    │   │   ├── test_char.mjs
    │   │   ├── test_char.res
    │   │   ├── test_closure.mjs
    │   │   ├── test_closure.res
    │   │   ├── test_common.mjs
    │   │   ├── test_common.res
    │   │   ├── test_const_elim.mjs
    │   │   ├── test_const_elim.res
    │   │   ├── test_const_propogate.mjs
    │   │   ├── test_const_propogate.res
    │   │   ├── test_cpp.mjs
    │   │   ├── test_cpp.res
    │   │   ├── test_cps.mjs
    │   │   ├── test_cps.res
    │   │   ├── test_demo.mjs
    │   │   ├── test_demo.res
    │   │   ├── test_dup_param.mjs
    │   │   ├── test_dup_param.res
    │   │   ├── test_eq.mjs
    │   │   ├── test_eq.res
    │   │   ├── test_exception.mjs
    │   │   ├── test_exception.res
    │   │   ├── test_exception_escape.mjs
    │   │   ├── test_exception_escape.res
    │   │   ├── test_export2.mjs
    │   │   ├── test_export2.res
    │   │   ├── test_external.mjs
    │   │   ├── test_external.res
    │   │   ├── test_external_unit.mjs
    │   │   ├── test_external_unit.res
    │   │   ├── test_ffi.mjs
    │   │   ├── test_ffi.res
    │   │   ├── test_fib.mjs
    │   │   ├── test_fib.res
    │   │   ├── test_for_loop.mjs
    │   │   ├── test_for_loop.res
    │   │   ├── test_for_map.mjs
    │   │   ├── test_for_map.res
    │   │   ├── test_for_map2.mjs
    │   │   ├── test_for_map2.res
    │   │   ├── test_functor_dead_code.mjs
    │   │   ├── test_functor_dead_code.res
    │   │   ├── test_generative_module.mjs
    │   │   ├── test_generative_module.res
    │   │   ├── test_google_closure.mjs
    │   │   ├── test_google_closure.res
    │   │   ├── test_include.mjs
    │   │   ├── test_include.res
    │   │   ├── test_incomplete.mjs
    │   │   ├── test_incomplete.res
    │   │   ├── test_incr_ref.mjs
    │   │   ├── test_incr_ref.res
    │   │   ├── test_int_map_find.mjs
    │   │   ├── test_int_map_find.res
    │   │   ├── test_is_js.mjs
    │   │   ├── test_is_js.res
    │   │   ├── test_js_ffi.mjs
    │   │   ├── test_js_ffi.res
    │   │   ├── test_let.mjs
    │   │   ├── test_let.res
    │   │   ├── test_list.mjs
    │   │   ├── test_list.res
    │   │   ├── test_literal.mjs
    │   │   ├── test_literal.res
    │   │   ├── test_literals.mjs
    │   │   ├── test_literals.res
    │   │   ├── test_match_exception.mjs
    │   │   ├── test_match_exception.res
    │   │   ├── test_nested_let.mjs
    │   │   ├── test_nested_let.res
    │   │   ├── test_nested_print.mjs
    │   │   ├── test_nested_print.res
    │   │   ├── test_non_export.mjs
    │   │   ├── test_non_export.res
    │   │   ├── test_nullary.mjs
    │   │   ├── test_nullary.res
    │   │   ├── test_obj.mjs
    │   │   ├── test_obj.res
    │   │   ├── test_order.mjs
    │   │   ├── test_order.res
    │   │   ├── test_order_tailcall.mjs
    │   │   ├── test_order_tailcall.res
    │   │   ├── test_other_exn.mjs
    │   │   ├── test_other_exn.res
    │   │   ├── test_per.mjs
    │   │   ├── test_per.res
    │   │   ├── test_pervasive.mjs
    │   │   ├── test_pervasive.res
    │   │   ├── test_pervasives3.mjs
    │   │   ├── test_pervasives3.res
    │   │   ├── test_primitive.mjs
    │   │   ├── test_primitive.res
    │   │   ├── test_ramification.mjs
    │   │   ├── test_ramification.res
    │   │   ├── test_react.mjs
    │   │   ├── test_react.res
    │   │   ├── test_react_case.mjs
    │   │   ├── test_react_case.res
    │   │   ├── test_regex.mjs
    │   │   ├── test_regex.res
    │   │   ├── test_runtime_encoding.mjs
    │   │   ├── test_runtime_encoding.res
    │   │   ├── test_scope.mjs
    │   │   ├── test_scope.res
    │   │   ├── test_seq.mjs
    │   │   ├── test_seq.res
    │   │   ├── test_set.mjs
    │   │   ├── test_set.res
    │   │   ├── test_side_effect_functor.mjs
    │   │   ├── test_side_effect_functor.res
    │   │   ├── test_simple_include.mjs
    │   │   ├── test_simple_include.res
    │   │   ├── test_simple_pattern_match.mjs
    │   │   ├── test_simple_pattern_match.res
    │   │   ├── test_simple_ref.mjs
    │   │   ├── test_simple_ref.res
    │   │   ├── test_simple_tailcall.mjs
    │   │   ├── test_simple_tailcall.res
    │   │   ├── test_small.mjs
    │   │   ├── test_small.res
    │   │   ├── test_static_catch_ident.mjs
    │   │   ├── test_static_catch_ident.res
    │   │   ├── test_string.mjs
    │   │   ├── test_string.res
    │   │   ├── test_string_case.mjs
    │   │   ├── test_string_case.res
    │   │   ├── test_string_const.mjs
    │   │   ├── test_string_const.res
    │   │   ├── test_string_map.mjs
    │   │   ├── test_string_map.res
    │   │   ├── test_string_switch.mjs
    │   │   ├── test_string_switch.res
    │   │   ├── test_switch.mjs
    │   │   ├── test_switch.res
    │   │   ├── test_trywith.mjs
    │   │   ├── test_trywith.res
    │   │   ├── test_tuple.mjs
    │   │   ├── test_tuple.res
    │   │   ├── test_tuple_destructring.mjs
    │   │   ├── test_tuple_destructring.res
    │   │   ├── test_type_based_arity.mjs
    │   │   ├── test_type_based_arity.res
    │   │   ├── test_u.mjs
    │   │   ├── test_u.res
    │   │   ├── test_unknown.mjs
    │   │   ├── test_unknown.res
    │   │   ├── test_unsafe_cmp.mjs
    │   │   ├── test_unsafe_cmp.res
    │   │   ├── test_unsafe_obj_ffi.mjs
    │   │   ├── test_unsafe_obj_ffi.res
    │   │   ├── test_unsafe_obj_ffi.resi
    │   │   ├── test_unsafe_obj_ffi_ppx.mjs
    │   │   ├── test_unsafe_obj_ffi_ppx.res
    │   │   ├── test_unsafe_obj_ffi_ppx.resi
    │   │   ├── test_utils.mjs
    │   │   ├── test_utils.res
    │   │   ├── test_while_closure.mjs
    │   │   ├── test_while_closure.res
    │   │   ├── test_while_side_effect.mjs
    │   │   ├── test_while_side_effect.res
    │   │   ├── test_zero_nullable.mjs
    │   │   ├── test_zero_nullable.res
    │   │   ├── then_mangle_test.mjs
    │   │   ├── then_mangle_test.res
    │   │   ├── ticker.mjs
    │   │   ├── ticker.res
    │   │   ├── to_string_test.mjs
    │   │   ├── to_string_test.res
    │   │   ├── topsort_test.mjs
    │   │   ├── topsort_test.res
    │   │   ├── tramp_fib.mjs
    │   │   ├── tramp_fib.res
    │   │   ├── tuple_alloc.mjs
    │   │   ├── tuple_alloc.res
    │   │   ├── type_coercion_free_vars.mjs
    │   │   ├── type_coercion_free_vars.res
    │   │   ├── type_disambiguate.mjs
    │   │   ├── type_disambiguate.res
    │   │   ├── typeof_test.mjs
    │   │   ├── typeof_test.res
    │   │   ├── unboxed_attribute.mjs
    │   │   ├── unboxed_attribute.res
    │   │   ├── unboxed_attribute_test.mjs
    │   │   ├── unboxed_attribute_test.res
    │   │   ├── unboxed_crash.mjs
    │   │   ├── unboxed_crash.res
    │   │   ├── unboxed_use_case.mjs
    │   │   ├── unboxed_use_case.res
    │   │   ├── unboxed_use_case.resi
    │   │   ├── uncurried_cast.mjs
    │   │   ├── uncurried_cast.res
    │   │   ├── uncurried_default.args.mjs
    │   │   ├── uncurried_default.args.res
    │   │   ├── uncurried_pipe.mjs
    │   │   ├── uncurried_pipe.res
    │   │   ├── uncurry_external_test.mjs
    │   │   ├── uncurry_external_test.res
    │   │   ├── uncurry_glob_test.mjs
    │   │   ├── uncurry_glob_test.res
    │   │   ├── uncurry_test.mjs
    │   │   ├── uncurry_test.res
    │   │   ├── uncurry_test.resi
    │   │   ├── undef_regression_test.mjs
    │   │   ├── undef_regression_test.res
    │   │   ├── unified_ops_test.mjs
    │   │   ├── unified_ops_test.res
    │   │   ├── unit_undefined_test.mjs
    │   │   ├── unit_undefined_test.res
    │   │   ├── unsafe_full_apply_primitive.mjs
    │   │   ├── unsafe_full_apply_primitive.res
    │   │   ├── unsafe_ppx_test.mjs
    │   │   ├── unsafe_ppx_test.res
    │   │   ├── untagged_variants_heuristic.mjs
    │   │   ├── untagged_variants_heuristic.res
    │   │   ├── update_record_test.mjs
    │   │   ├── update_record_test.res
    │   │   ├── variant.mjs
    │   │   ├── variant.res
    │   │   ├── variantsMatching.gen.tsx
    │   │   ├── variantsMatching.mjs
    │   │   ├── variantsMatching.res
    │   │   ├── webpack_config.mjs
    │   │   └── webpack_config.res
    └── tools_tests
    │   ├── Makefile
    │   ├── package.json
    │   ├── ppx
    │       └── TestPpx.res
    │   ├── rescript.json
    │   ├── src
    │       ├── DocExtraction2.res
    │       ├── DocExtraction2.resi
    │       ├── DocExtractionRes.res
    │       ├── ModC.res
    │       ├── ModC.resi
    │       └── expected
    │       │   ├── DocExtraction2.res.json
    │       │   ├── DocExtraction2.resi.json
    │       │   ├── DocExtractionRes.res.json
    │       │   ├── ModC.res.json
    │       │   ├── ModC.resi.json
    │       │   └── TestPpx.res.jsout
    │   └── test.sh
├── tools.opam
├── tools
    ├── README.md
    ├── bin
    │   ├── dune
    │   ├── main.ml
    │   └── version.ml
    ├── rescript.json
    └── src
    │   ├── dune
    │   └── tools.ml
├── tsconfig.json
├── yarn.config.cjs
└── yarn.lock


/.nvmrc:
--------------------------------------------------------------------------------
1 | 22
2 | 


--------------------------------------------------------------------------------
/.python-version:
--------------------------------------------------------------------------------
1 | 3.11
2 | 


--------------------------------------------------------------------------------
/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | defaultSemverRangePrefix: ""
2 | 
3 | nmMode: hardlinks-global
4 | 
5 | nodeLinker: node-modules
6 | 
7 | yarnPath: .yarn/releases/yarn-4.9.1.cjs
8 | 


--------------------------------------------------------------------------------
/Example.res:
--------------------------------------------------------------------------------
 1 | type x =
 2 |   /** first group */
 3 |   | A
 4 |   | B
 5 |   | C
 6 | 
 7 |   /** second group */
 8 |   | D
 9 |   | E
10 |   | F
11 | 


--------------------------------------------------------------------------------
/analysis/examples/example-project/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | .merlin
3 | package-lock.json
4 | yarn.lock
5 | 


--------------------------------------------------------------------------------
/analysis/examples/example-project/src/B.re:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | let x = 12
 4 | 
 5 | 
 6 | let y = 44
 7 | 
 8 | 
 9 | let z = 123
10 | 


--------------------------------------------------------------------------------
/analysis/examples/example-project/src/More.resi:
--------------------------------------------------------------------------------
1 | let contnets: string
2 | let inner: int
3 | let n: int
4 | let party: int
5 | 
6 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /lib
3 | package-lock.json
4 | yarn.lock
5 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DeadCodeImplementation.res:
--------------------------------------------------------------------------------
1 | module M: DeadCodeInterface.T = {
2 |   let x = 42
3 | }
4 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DeadCodeInterface.res:
--------------------------------------------------------------------------------
1 | module type T = {
2 |   let x: int
3 | }
4 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DeadExn.resi:
--------------------------------------------------------------------------------
1 | // empty
2 | exception Etoplevel
3 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DeadRT.resi:
--------------------------------------------------------------------------------
1 | type moduleAccessPath =
2 |   | Root(string)
3 |   | Kaboom
4 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DeadTestBlacklist.res:
--------------------------------------------------------------------------------
1 | let x = 34
2 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DeadTestWithInterface.res:
--------------------------------------------------------------------------------
1 | module Ext_buffer: {
2 |   let x: int
3 | } = {
4 |   let x = 42
5 | }
6 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DeadTestWithInterface.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DeadValueTest.resi:
--------------------------------------------------------------------------------
1 | let valueAlive: int
2 | let valueDead: int
3 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/DynamicallyLoadedComponent.res:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make = (~s) => React.string(s)
3 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/EverythingLiveHere.res:
--------------------------------------------------------------------------------
1 | let x = 1
2 | 
3 | let y = 3
4 | 
5 | let z = 4
6 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/IgnoreInterface.res:
--------------------------------------------------------------------------------
1 | @gentype
2 | type t = int
3 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/JSResource.res:
--------------------------------------------------------------------------------
1 | type t<'a>
2 | 
3 | @module external jSResource: string => t<'a> = "JSResource"
4 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/LetPrivate.res:
--------------------------------------------------------------------------------
1 | %%private(
2 |   @genType
3 |   let x = 34
4 | )
5 | 
6 | @genType
7 | let y = x
8 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/NestedModulesInSignature.res:
--------------------------------------------------------------------------------
1 | module Universe = {
2 |   let theAnswer = 42
3 | }
4 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/NestedModulesInSignature.resi:
--------------------------------------------------------------------------------
1 | module Universe: {
2 |   @genType
3 |   let theAnswer: int
4 | }
5 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/OptArg.resi:
--------------------------------------------------------------------------------
1 | let foo: (~x: int=?, ~y: int=?, ~z: int=?, int) => int
2 | let bar: (~x: 'a=?, ~y: int, ~z: 'b=?, int) => int
3 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/TestDeadExn.res:
--------------------------------------------------------------------------------
1 | Js.log(DeadExn.Etoplevel)
2 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/ToSuppress.res:
--------------------------------------------------------------------------------
1 | let toSuppress = 0
2 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/TypeParams1.res:
--------------------------------------------------------------------------------
1 | @gentype
2 | type ocaml_array<'a> = array<'a>
3 | 
4 | let exportSomething = 10
5 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/exception/ExnB.res:
--------------------------------------------------------------------------------
1 | @raises(Not_found)
2 | let foo = () => throw(Not_found)
3 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/exception/ExportWithRename.res:
--------------------------------------------------------------------------------
1 | @genType("ExportWithRename") @react.component
2 | let make = (~s) => React.string(s)
3 | 


--------------------------------------------------------------------------------
/analysis/examples/larger-project/src/loop.res:
--------------------------------------------------------------------------------
1 | // let foo = x =>
2 | //   switch x {
3 | //   | `${
4 | 
5 | 


--------------------------------------------------------------------------------
/analysis/examples/workspace-project/README.md:
--------------------------------------------------------------------------------
1 | # ReScript workspaces example (monorepo)
2 | 
3 | ```
4 | npm install
5 | npm run build
6 | npm run start
7 | ```
8 | 


--------------------------------------------------------------------------------
/analysis/examples/workspace-project/app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | 	"name": "app",
3 | 	"version": "0.1.0"
4 | }


--------------------------------------------------------------------------------
/analysis/examples/workspace-project/app/src/App.res:
--------------------------------------------------------------------------------
1 | let _ = Myplugin.Promise.resolve(Utils.printError("Oh no!"))
2 | 


--------------------------------------------------------------------------------
/analysis/examples/workspace-project/common/package.json:
--------------------------------------------------------------------------------
1 | {
2 | 	"name": "common",
3 | 	"version": "0.1.0"
4 | }


--------------------------------------------------------------------------------
/analysis/examples/workspace-project/myplugin/package.json:
--------------------------------------------------------------------------------
1 | {
2 | 	"name": "myplugin",
3 | 	"version": "0.1.0"
4 | }


--------------------------------------------------------------------------------
/analysis/reanalyze/dune:
--------------------------------------------------------------------------------
1 | (dirs src)
2 | 


--------------------------------------------------------------------------------
/analysis/reanalyze/src/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name reanalyze)
3 |  (flags
4 |   (-w "+6+26+27+32+33+39"))
5 |  (libraries jsonlib ext ml str unix))
6 | 


--------------------------------------------------------------------------------
/analysis/src/Log.ml:
--------------------------------------------------------------------------------
1 | let verbose = ref false
2 | let log msg = if !verbose then print_endline msg
3 | 


--------------------------------------------------------------------------------
/analysis/src/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name analysis)
3 |  (flags
4 |   (-w "+6+26+27+32+33+39"))
5 |  (libraries unix str ext ml jsonlib syntax reanalyze))
6 | 


--------------------------------------------------------------------------------
/analysis/vendor/.ocamlformat:
--------------------------------------------------------------------------------
1 | disable
2 | 


--------------------------------------------------------------------------------
/analysis/vendor/dune:
--------------------------------------------------------------------------------
1 | (dirs ext ml res_syntax json flow_parser)
2 | 


--------------------------------------------------------------------------------
/analysis/vendor/json/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name jsonlib)
3 |  (wrapped false)
4 |  (flags -w "-9")
5 |  (libraries))
6 | 


--------------------------------------------------------------------------------
/compiler/bsb/bsb_config_load.mli:
--------------------------------------------------------------------------------
1 | val load_json :
2 |   per_proj_dir:string -> warn_legacy_config:bool -> string * Ext_json_types.t
3 | 


--------------------------------------------------------------------------------
/compiler/bsb/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name bsb)
3 |  (wrapped false)
4 |  (flags
5 |   (:standard -w +a-4-9-40-41-42-70))
6 |  (libraries common ext str unix))
7 | 


--------------------------------------------------------------------------------
/compiler/bsb_helper/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name bsb_helper)
3 |  (wrapped false)
4 |  (flags
5 |   (:standard -w +a-9-40-42))
6 |  (libraries ext))
7 | 


--------------------------------------------------------------------------------
/compiler/depends/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name depends)
3 |  (wrapped false)
4 |  (flags
5 |   (:standard -w +a-4-40-42))
6 |  (libraries common))
7 | 


--------------------------------------------------------------------------------
/compiler/ext/README.md:
--------------------------------------------------------------------------------
1 | This folder hosts some of the utils we use in ReScript, internally.
2 | 


--------------------------------------------------------------------------------
/compiler/ext/ext_module_system.ml:
--------------------------------------------------------------------------------
1 | type t = Commonjs | Esmodule | Es6_global
2 | 


--------------------------------------------------------------------------------
/compiler/ext/ext_spec.mli:
--------------------------------------------------------------------------------
1 | type 'a t = (string * 'a * string) array
2 | 
3 | val assoc3 : 'a t -> string -> 'a option
4 | 


--------------------------------------------------------------------------------
/compiler/ext/hash.mli:
--------------------------------------------------------------------------------
1 | module Make (Key : Hashtbl.HashedType) : Hash_gen.S with type key = Key.t
2 | 


--------------------------------------------------------------------------------
/compiler/ext/hash_ident.mli:
--------------------------------------------------------------------------------
1 | include Hash_gen.S with type key = Ident.t
2 | 


--------------------------------------------------------------------------------
/compiler/ext/set_int.mli:
--------------------------------------------------------------------------------
1 | include Set_gen.S with type elt = int
2 | 


--------------------------------------------------------------------------------
/compiler/frontend/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name frontend)
3 |  (wrapped false)
4 |  (flags
5 |   (:standard -w +a-4-9-40-42-70))
6 |  (libraries common ml))
7 | 


--------------------------------------------------------------------------------
/compiler/gentype/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name gentype)
3 |  (wrapped false)
4 |  (flags
5 |   (:standard -w +a-4-9-40-41-42-48-70))
6 |  (libraries ml))
7 | 


--------------------------------------------------------------------------------
/compiler/ml/ccomp.mli:
--------------------------------------------------------------------------------
1 | val command : string -> int
2 | 


--------------------------------------------------------------------------------
/compiler/ml/rec_check.mli:
--------------------------------------------------------------------------------
1 | val check_recursive_bindings : Typedtree.value_binding list -> unit
2 | 


--------------------------------------------------------------------------------
/compiler/ml/used_attributes.mli:
--------------------------------------------------------------------------------
1 | val mark_used_attribute : Parsetree.attribute -> unit
2 | 
3 | val is_used_attribute : string Asttypes.loc -> bool
4 | 


--------------------------------------------------------------------------------
/compiler/syntax/src/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name syntax)
3 |  (wrapped false)
4 |  (flags
5 |   (:standard -w +a-4-42-40-9-48-70))
6 |  (libraries ml))
7 | 


--------------------------------------------------------------------------------
/compiler/syntax/src/res_driver_binary.mli:
--------------------------------------------------------------------------------
1 | val print_engine : Res_driver.print_engine
2 | 


--------------------------------------------------------------------------------
/compiler/syntax/src/res_driver_ml_printer.mli:
--------------------------------------------------------------------------------
1 | val print_engine : Res_driver.print_engine
2 | 


--------------------------------------------------------------------------------
/dune:
--------------------------------------------------------------------------------
1 | (dirs compiler tests analysis tools)
2 | 


--------------------------------------------------------------------------------
/lib/es6/Dom.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Storage;
 5 | 
 6 | let Storage2;
 7 | 
 8 | export {
 9 |   Storage,
10 |   Storage2,
11 | }
12 | /* No side effect */
13 | 


--------------------------------------------------------------------------------
/lib/es6/Dom_storage2.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_OO.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Callback = {};
 5 | 
 6 | export {
 7 |   Callback,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Js_array2.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_bigint.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | function lnot(x) {
 5 |   return x ^ -1n;
 6 | }
 7 | 
 8 | export {
 9 |   lnot,
10 | }
11 | /* No side effect */
12 | 


--------------------------------------------------------------------------------
/lib/es6/Js_blob.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_console.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_date.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_file.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_float.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_global.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_map.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_obj.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_re.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_result.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_set.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_string2.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_weakmap.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Js_weakset.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Jsx.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/JsxDOM.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/JsxDOMStyle.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Obj.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_array_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_char_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_dict.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_float_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_int_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_js_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_object_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_promise.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Primitive_string_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/RescriptTools.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Docgen;
 5 | 
 6 | export {
 7 |   Docgen,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_ArrayBuffer.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_BigInt64Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_BigUint64Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Console.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_DataView.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Float32Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Float64Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Int16Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Int32Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Int8Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_Collator.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_Common.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_DateTimeFormat.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_ListFormat.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_Locale.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_NumberFormat.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Grouping;
 5 | 
 6 | export {
 7 |   Grouping,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_PluralRules.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_RelativeTimeFormat.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_Segmenter.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Intl_Segments.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Iterator.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Map.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Object.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_RegExp.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Result = {};
 5 | 
 6 | export {
 7 |   Result,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Set.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Symbol.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_TypedArray.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Uint16Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Uint32Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Uint8Array.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_Uint8ClampedArray.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let Constants = {};
 5 | 
 6 | export {
 7 |   Constants,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_WeakMap.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/Stdlib_WeakSet.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/es6/package.json:
--------------------------------------------------------------------------------
1 | {"type" : "module"}


--------------------------------------------------------------------------------
/lib/js/Dom_storage2.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_OO.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Callback = {};
5 | 
6 | exports.Callback = Callback;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Js_array2.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_bigint.js:
--------------------------------------------------------------------------------
 1 | 'use strict';
 2 | 
 3 | 
 4 | function lnot(x) {
 5 |   return x ^ -1n;
 6 | }
 7 | 
 8 | exports.lnot = lnot;
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/lib/js/Js_blob.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_console.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_date.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_file.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_float.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_global.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_map.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_obj.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_re.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_result.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_set.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_string2.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_weakmap.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Js_weakset.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Jsx.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/JsxDOM.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/JsxDOMStyle.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Obj.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_array_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_char_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_dict.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_float_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_int_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_js_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_object_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_promise.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Primitive_string_extern.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/RescriptTools.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Docgen;
5 | 
6 | exports.Docgen = Docgen;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_ArrayBuffer.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_BigInt64Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_BigUint64Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Console.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_DataView.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Float32Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Float64Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Int16Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Int32Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Int8Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_Collator.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_Common.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_DateTimeFormat.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_ListFormat.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_Locale.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_NumberFormat.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Grouping;
5 | 
6 | exports.Grouping = Grouping;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_PluralRules.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_RelativeTimeFormat.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_Segmenter.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Intl_Segments.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Iterator.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Map.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Object.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_RegExp.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Result = {};
5 | 
6 | exports.Result = Result;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Set.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Symbol.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_TypedArray.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Uint16Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Uint32Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Uint8Array.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_Uint8ClampedArray.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 
3 | 
4 | let Constants = {};
5 | 
6 | exports.Constants = Constants;
7 | /* No side effect */
8 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_WeakMap.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib/js/Stdlib_WeakSet.js:
--------------------------------------------------------------------------------
1 | /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
2 | 


--------------------------------------------------------------------------------
/lib_dev/utils.js:
--------------------------------------------------------------------------------
1 | /**
2 |  * @param {string} s
3 |  */
4 | export function normalizeNewlines(s) {
5 |   return s.replace(/\r\n/g, "\n");
6 | }
7 | 


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/kw_build:
--------------------------------------------------------------------------------
1 | build


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/kw_default:
--------------------------------------------------------------------------------
1 | default


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/kw_include:
--------------------------------------------------------------------------------
1 | include


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/kw_pool:
--------------------------------------------------------------------------------
1 | pool


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/kw_rule:
--------------------------------------------------------------------------------
1 | rule


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/kw_subninja:
--------------------------------------------------------------------------------
1 | subninja


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_a:
--------------------------------------------------------------------------------
1 | a


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_b:
--------------------------------------------------------------------------------
1 | b


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_colon:
--------------------------------------------------------------------------------
1 | :


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_cont:
--------------------------------------------------------------------------------
1 | $
2 | 


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_dollar:
--------------------------------------------------------------------------------
1 | $


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_eq:
--------------------------------------------------------------------------------
1 | =


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_indent:
--------------------------------------------------------------------------------
1 |   


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_pipe:
--------------------------------------------------------------------------------
1 | |


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_pipepipe:
--------------------------------------------------------------------------------
1 | ||


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz-tokens/misc_space:
--------------------------------------------------------------------------------
1 |  


--------------------------------------------------------------------------------
/ninja/misc/afl-fuzz/build.ninja:
--------------------------------------------------------------------------------
1 | rule b
2 |   command = clang -MMD -MF $out.d -o $out -c $in
3 |   description = building $out
4 | 
5 | build a.o: b a.c
6 | 


--------------------------------------------------------------------------------
/packages/playground/src/App.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rescript-lang/rescript/d70c7fa8dbfd799303154e3f254f8cd6d99312bd/packages/playground/src/App.res


--------------------------------------------------------------------------------
/packages/std/.gitignore:
--------------------------------------------------------------------------------
1 | lib/
2 | package-lock.json
3 | yarn.lock
4 | 


--------------------------------------------------------------------------------
/rewatch/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 | .DS_Store
3 | /docs
4 | 


--------------------------------------------------------------------------------
/rewatch/rewatch.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 | REM no need to branch on OS here, it will only be used on windows
3 | %~dp0\rewatch-windows.exe %*
4 | 


--------------------------------------------------------------------------------
/rewatch/rust-toolchain.toml:
--------------------------------------------------------------------------------
1 | [toolchain]
2 | channel = "stable"
3 | 


--------------------------------------------------------------------------------
/rewatch/rustfmt.toml:
--------------------------------------------------------------------------------
1 | 
2 | max_width = 110


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/compiled-by-legacy/src/Main.res:
--------------------------------------------------------------------------------
1 | let x = 1


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/dep01/src/Dep01.res:
--------------------------------------------------------------------------------
1 | let log = () => {
2 |         Js.log("02")
3 |         Dep02.log()
4 | }
5 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/dep02/src/Dep02.res:
--------------------------------------------------------------------------------
1 | open Array
2 | let log = () => ["a", "b"]->forEach(Js.log)
3 | Js.log(NS.Alias.hello_world())
4 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/file-casing/src/Consume.res:
--------------------------------------------------------------------------------
1 | let x = Produce.meh(1)


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/file-casing/src/produce.res:
--------------------------------------------------------------------------------
1 | let meh = (_: int) => {
2 |   true
3 | }


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/main/src/InternalDep.res:
--------------------------------------------------------------------------------
1 | let value = 1
2 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/main/src/ModuleWithInterface.res:
--------------------------------------------------------------------------------
1 | type hello = string
2 | let hello = "world"
3 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/main/src/ModuleWithInterface.resi:
--------------------------------------------------------------------------------
1 | type hello
2 | let hello: hello
3 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/main/src/output.txt:
--------------------------------------------------------------------------------
1 | bla
2 | Hello world
3 | 01
4 | 02
5 | a
6 | b
7 | 1
8 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/namespace-casing/src/Consume.res:
--------------------------------------------------------------------------------
1 | let x = Produce.meh(1)


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/namespace-casing/src/Produce.res:
--------------------------------------------------------------------------------
1 | let meh = (_: int) => {
2 |   true
3 | }


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/new-namespace/src/NS.res:
--------------------------------------------------------------------------------
1 | module Alias = NS_alias
2 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/new-namespace/src/NS_alias.res:
--------------------------------------------------------------------------------
1 | let hello_world = () => "Hello world"
2 | Other_module.bla()
3 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/new-namespace/src/Other_module.res:
--------------------------------------------------------------------------------
1 | let bla = () => Js.log("bla")
2 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/packages/with-dev-deps/src/FileToTest.res:
--------------------------------------------------------------------------------
1 | let add = (a, b) => a + b
2 | 


--------------------------------------------------------------------------------
/rewatch/testrepo/src/Test.res:
--------------------------------------------------------------------------------
1 | let hello = "world"
2 | 


--------------------------------------------------------------------------------
/rewatch/tests/legacy-utils.sh:
--------------------------------------------------------------------------------
1 | source "utils.sh"
2 | 
3 | rewatch_legacy() { RUST_BACKTRACE=1 "../../$REWATCH_EXECUTABLE" legacy $@; }


--------------------------------------------------------------------------------
/rewatch/tests/lib/rewatch.lock:
--------------------------------------------------------------------------------
1 | 36062


--------------------------------------------------------------------------------
/rewatch/tests/snapshots/rename-file.txt:
--------------------------------------------------------------------------------
1 | Cleaned 1/15
2 | Parsed 1 source files
3 | Compiled 1 modules
4 | 


--------------------------------------------------------------------------------
/rewatch/tests/suite.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | cd $(dirname $0)
3 | ./suite-ci.sh
4 | 


--------------------------------------------------------------------------------
/runtime/.gitignore:
--------------------------------------------------------------------------------
1 | lib/
2 | 


--------------------------------------------------------------------------------
/runtime/Js_blob.res:
--------------------------------------------------------------------------------
1 | /*** JavaScript Blob API */
2 | 
3 | type t
4 | 


--------------------------------------------------------------------------------
/runtime/Js_file.res:
--------------------------------------------------------------------------------
1 | /*** JavaScript File API */
2 | 
3 | type t
4 | 


--------------------------------------------------------------------------------
/runtime/Js_map.res:
--------------------------------------------------------------------------------
1 | /*** ES6 Map API */
2 | 
3 | type t<'k, 'v> = Stdlib_Map.t<'k, 'v>
4 | 


--------------------------------------------------------------------------------
/runtime/Js_set.res:
--------------------------------------------------------------------------------
1 | /*** ES6 Set API */
2 | 
3 | type t<'a> = Stdlib_Set.t<'a>
4 | 


--------------------------------------------------------------------------------
/runtime/Js_weakmap.res:
--------------------------------------------------------------------------------
1 | /*** ES6 WeakMap API */
2 | 
3 | type t<'k, 'v> = Stdlib_WeakMap.t<'k, 'v>
4 | 


--------------------------------------------------------------------------------
/runtime/Js_weakset.res:
--------------------------------------------------------------------------------
1 | /*** ES6 WeakSet API */
2 | 
3 | type t<'a> = Stdlib_WeakSet.t<'a>
4 | 


--------------------------------------------------------------------------------
/runtime/Primitive_char_extern.res:
--------------------------------------------------------------------------------
1 | external code: char => int = "%identity"
2 | external unsafe_chr: int => char = "%identity"
3 | 


--------------------------------------------------------------------------------
/runtime/Primitive_dict.res:
--------------------------------------------------------------------------------
1 | // Note: this is exposed to support syntax
2 | external make: array<(string, 'a)> => dict<'a> = "%makedict"
3 | 


--------------------------------------------------------------------------------
/runtime/Primitive_float_extern.res:
--------------------------------------------------------------------------------
1 | external toInt: float => int = "%intoffloat"
2 | 


--------------------------------------------------------------------------------
/runtime/Primitive_int_extern.res:
--------------------------------------------------------------------------------
1 | external div: (int, int) => int = "%divint"
2 | 
3 | external mod_: (int, int) => int = "%modint"
4 | 


--------------------------------------------------------------------------------
/runtime/Primitive_promise.res:
--------------------------------------------------------------------------------
1 | external unsafe_async: 'a => promise<'a> = "%identity"
2 | external unsafe_await: promise<'a> => 'a = "%await"
3 | 


--------------------------------------------------------------------------------
/runtime/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "rescript-runtime",
3 |   "version": "0.0.0",
4 |   "private": true
5 | }


--------------------------------------------------------------------------------
/scripts/res/.gitignore:
--------------------------------------------------------------------------------
1 | *.res.js
2 | lib
3 | apiDocs/**/*
4 | !.gitkeep


--------------------------------------------------------------------------------
/scripts/res/apiDocs/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rescript-lang/rescript/d70c7fa8dbfd799303154e3f254f8cd6d99312bd/scripts/res/apiDocs/.gitkeep


--------------------------------------------------------------------------------
/tests/.gitignore:
--------------------------------------------------------------------------------
1 | lib/
2 | temp/
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-incremental-typechecking/src/ConstructorCompletion__Json.res:
--------------------------------------------------------------------------------
1 | let x = Js.Json.Array()
2 | //                    ^com
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/.gitignore:
--------------------------------------------------------------------------------
1 | .merlin
2 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /lib


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DeadCodeImplementation.res:
--------------------------------------------------------------------------------
1 | module M: DeadCodeInterface.T = {
2 |   let x = 42
3 | }
4 | 
5 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DeadCodeInterface.res:
--------------------------------------------------------------------------------
1 | module type T = {
2 |   let x: int
3 | }
4 | 
5 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DeadExn.resi:
--------------------------------------------------------------------------------
1 | // empty
2 | exception Etoplevel
3 | 
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DeadRT.resi:
--------------------------------------------------------------------------------
1 | type moduleAccessPath =
2 |   | Root(string)
3 |   | Kaboom
4 | 
5 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DeadTestBlacklist.res:
--------------------------------------------------------------------------------
1 | let x = 34
2 | 
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DeadTestWithInterface.res:
--------------------------------------------------------------------------------
1 | module Ext_buffer: {
2 |   let x: int
3 | } = {
4 |   let x = 42
5 | }
6 | 
7 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DeadTestWithInterface.resi:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DeadValueTest.resi:
--------------------------------------------------------------------------------
1 | let valueAlive: int
2 | let valueDead: int
3 | 
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/DynamicallyLoadedComponent.res:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make = (~s) => React.string(s)
3 | 
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/EverythingLiveHere.res:
--------------------------------------------------------------------------------
1 | let x = 1
2 | 
3 | let y = 3
4 | 
5 | let z = 4
6 | 
7 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/IgnoreInterface.res:
--------------------------------------------------------------------------------
1 | @gentype
2 | type t = int
3 | 
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/InnerModuleTypes.res:
--------------------------------------------------------------------------------
1 | module I = {
2 |   type t = Foo
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/InnerModuleTypes.resi:
--------------------------------------------------------------------------------
1 | module I: {
2 |   type t = Foo
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/JSResource.res:
--------------------------------------------------------------------------------
1 | type t<'a>
2 | 
3 | @module external jSResource: string => t<'a> = "JSResource"
4 | 
5 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/LetPrivate.res:
--------------------------------------------------------------------------------
1 | %%private(
2 |   @genType
3 |   let x = 34
4 | )
5 | 
6 | @genType
7 | let y = x
8 | 
9 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/NestedModulesInSignature.res:
--------------------------------------------------------------------------------
1 | module Universe = {
2 |   let theAnswer = 42
3 | }
4 | 
5 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/NestedModulesInSignature.resi:
--------------------------------------------------------------------------------
1 | module Universe: {
2 |   @genType
3 |   let theAnswer: int
4 | }
5 | 
6 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/TestDeadExn.res:
--------------------------------------------------------------------------------
1 | Js.log(DeadExn.Etoplevel)
2 | 
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/TestInnedModuleTypes.res:
--------------------------------------------------------------------------------
1 | let _ = InnerModuleTypes.I.Foo
2 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/ToSuppress.res:
--------------------------------------------------------------------------------
1 | let toSuppress = 0
2 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/TypeParams1.res:
--------------------------------------------------------------------------------
1 | @gentype
2 | type ocaml_array<'a> = array<'a>
3 | 
4 | let exportSomething = 10
5 | 
6 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/exception/ExnA.res:
--------------------------------------------------------------------------------
1 | let bar = () => ExnB.foo()
2 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/deadcode/src/exception/ExnB.res:
--------------------------------------------------------------------------------
1 | @raises(Not_found)
2 | let foo = () => throw(Not_found)
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests-reanalyze/termination/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /lib


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/not_compiled/Diagnostics.res:
--------------------------------------------------------------------------------
1 | let = 1 + 1.0
2 | let add = =2
3 | lett a = 2
4 | 
5 | //^dia


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/ArrayUtils.res:
--------------------------------------------------------------------------------
1 | let empty = arr => Array.length(arr) === 0
2 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/Auto.res:
--------------------------------------------------------------------------------
1 | open! ShadowedBelt
2 | 
3 | let m = List.map
4 | //           ^hov
5 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/CompletionResolve.res:
--------------------------------------------------------------------------------
1 | // ^cre Belt_Array
2 | 
3 | // ^cre ModuleStuff
4 | 
5 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/Component.res:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make = () => React.null
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/Component.resi:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make: unit => React.element
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/Dce.res:
--------------------------------------------------------------------------------
1 | // Note: in test mode this only reports on src/dce
2 | 
3 | // ^dce
4 | 
5 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/Div.res:
--------------------------------------------------------------------------------
1 | let q = <div />
2 | //        ^hov
3 | 
4 | // <div dangerous
5 | //               ^com
6 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/Fastify.res:
--------------------------------------------------------------------------------
1 | type t
2 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/FastifyExt.res:
--------------------------------------------------------------------------------
1 | let doStuff = (t: Fastify.t) => Console.log(t)
2 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/ModuleStuff.res:
--------------------------------------------------------------------------------
1 | /*** This is a top level module doc. */
2 | 
3 | module Nested = {
4 |   /*** Module doc for nested. */
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/ReferencesWithInterface.res:
--------------------------------------------------------------------------------
1 | let x = 2
2 | //  ^ref
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/ReferencesWithInterface.resi:
--------------------------------------------------------------------------------
1 | let x: int
2 | //  ^ref
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/RenameWithInterface.res:
--------------------------------------------------------------------------------
1 | let x = 2
2 | //  ^ren y
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/RenameWithInterface.resi:
--------------------------------------------------------------------------------
1 | let x: int
2 | //  ^ren y
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/ShadowedBelt.res:
--------------------------------------------------------------------------------
1 | module List = {
2 |   let map = (l, fn) => List.map(fn, l)
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/TableclothMap.resi:
--------------------------------------------------------------------------------
1 | let add: int
2 | 
3 | module Int: {}
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/dce/DceTest.res:
--------------------------------------------------------------------------------
1 | let x = 12
2 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/expected/Dce.res.txt:
--------------------------------------------------------------------------------
1 | DCE src/Dce.res
2 | issues:1
3 | 
4 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/inner/ComponentInner.res:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make = () => React.null
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/inner/ComponentInner.resi:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make: unit => React.element
3 | 


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/inner/ReferencesInner.res:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make = () => <ComponentInner/>


--------------------------------------------------------------------------------
/tests/analysis_tests/tests/src/inner/ReferencesInner.resi:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make: unit => React.element
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/build_warn_as_error/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "build_warn_as_error",
3 |   "version": "0.1.0",
4 |   "sources": ["src"]
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/build_warn_as_error/src/Demo.res:
--------------------------------------------------------------------------------
1 | let todo = _ => %todo
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "case",
3 |   "version": "0.1.0",
4 |   "sources": ["src"],
5 |   "bs-dependencies": []
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/build_tests/case/src/Demo.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case/src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case2/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "case2",
3 |   "version": "0.1.0",
4 |   "sources": ["src"],
5 |   "bs-dependencies": []
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/build_tests/case2/src/X.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case2/src/x.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/B01.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/B01.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/B02.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/B03.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/B04.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/B04.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/B05.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/B05.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/a01.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/a01.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/a02.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/a03.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/a04.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/a04.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/a05.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/a05.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/case3/src/hello.res:
--------------------------------------------------------------------------------
1 | @genType.import("hh")
2 | external f: int => int = "f"
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/cli_compile_status/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "test",
3 |   "version": "0.1.0",
4 |   "sources": []
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/custom_namespace/src/demo.res:
--------------------------------------------------------------------------------
1 | let v = 42
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/custom_namespace/src/demo.res.js:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | let v = 42;
 5 | 
 6 | export {
 7 |   v,
 8 | }
 9 | /* No side effect */
10 | 


--------------------------------------------------------------------------------
/tests/build_tests/cycle/src/a.res:
--------------------------------------------------------------------------------
1 | let v = B.v
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/cycle/src/b.res:
--------------------------------------------------------------------------------
1 | let v = A.v
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/cycle1/src/A.res:
--------------------------------------------------------------------------------
1 | include A
2 | 
3 | let x = 42
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/cycle1/src/A.resi:
--------------------------------------------------------------------------------
1 | let x: int
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/deprecated-package-specs/src/Index.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/devonly/src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log(Depdemo.a)
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/devonly/src/depdemo.res:
--------------------------------------------------------------------------------
1 | let a = 3
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/devonly/src2/hello.res:
--------------------------------------------------------------------------------
1 | let v = 3
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/devonly/src2/hellodep.res:
--------------------------------------------------------------------------------
1 | Js.log(Hello.v)
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/.gitignore:
--------------------------------------------------------------------------------
1 | .merlin
2 | **/lib
3 | !node_modules


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/a/node_modules/c:
--------------------------------------------------------------------------------
1 | ../../c


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/a/node_modules/z/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "z",
3 |   "version": "0.1.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/a/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "a",
3 |   "version": "0.1.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/b/node_modules/c:
--------------------------------------------------------------------------------
1 | ../../c


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/b/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "b",
3 |   "version": "0.1.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/c/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "c",
3 |   "version": "0.1.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/node_modules/a:
--------------------------------------------------------------------------------
1 | ../a


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/node_modules/b:
--------------------------------------------------------------------------------
1 | ../b


--------------------------------------------------------------------------------
/tests/build_tests/duplicated_symlinked_packages/node_modules/z/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "z",
3 |   "version": "0.1.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/exports/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "exports",
3 |   "version": "0.1.0",
4 |   "sources": ["src"]
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/gpr_978/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "gpr_978",
3 |   "version": "0.0.0",
4 |   "sources": ["src"]
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/gpr_978/src/gpr_978_module.res:
--------------------------------------------------------------------------------
1 | exception M(int)
2 | module M = {
3 |   let x = 3
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/hyphen2/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "hyphen2",
3 |   "version": "0.1.0",
4 |   "sources": ["y-src"],
5 |   "namespace": true
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/build_tests/hyphen2/y-src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/in_source/input.sh:
--------------------------------------------------------------------------------
1 | rescript build -regen


--------------------------------------------------------------------------------
/tests/build_tests/install/src/Foo.res:
--------------------------------------------------------------------------------
1 | let main = () => Js.log("hello")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/jsx_settings_inheritance/.gitignore:
--------------------------------------------------------------------------------
1 | !node_modules
2 | node_modules/**/lib
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/jsx_settings_inheritance/node_modules/a/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "a",
3 |   "version": "0.0.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/jsx_settings_inheritance/node_modules/b/package.json:
--------------------------------------------------------------------------------
1 | {
2 |     "name": "b",
3 |     "version": "0.0.0"
4 | }


--------------------------------------------------------------------------------
/tests/build_tests/jsx_settings_inheritance/src/C.res:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make = () => {
3 |   <>
4 |     <A.A />
5 |     <B.B />
6 |   </>
7 | }
8 | 


--------------------------------------------------------------------------------
/tests/build_tests/nested/.gitignore:
--------------------------------------------------------------------------------
1 | src/**/*.js


--------------------------------------------------------------------------------
/tests/build_tests/nested/src/a0/a0_main.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nested/src/a0/a1/A00_a1_main.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nested/src/b0/b0_main.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nested/src/b0/b1/B00_b1_main.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nested/src/demo.res:
--------------------------------------------------------------------------------
1 | let v = A00_a1_main.v + A0_main.v + B0_main.v + B00_b1_main.v
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nested/src/demo.resi:
--------------------------------------------------------------------------------
1 | let v: int
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nnest/.gitignore:
--------------------------------------------------------------------------------
1 | src/**/*.js


--------------------------------------------------------------------------------
/tests/build_tests/nnest/src/a0/a0_main.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nnest/src/a0/a1/A0_a1_main.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nnest/src/b0/b0_main.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nnest/src/b0/b1/B0_b1_main.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/nnest/src/demo.res:
--------------------------------------------------------------------------------
1 | let v = A0_a1_main.v + A0_main.v + B0_main.v + B0_b1_main.v
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/not_undefined_attribute/input.res:
--------------------------------------------------------------------------------
1 | @notUndefined
2 | type t = int
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/not_undefined_attribute/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "not_undefined_attribute",
3 |   "version": "0.1.0",
4 |   "sources": ["."]
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/ns/src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log(Hello.a + Hello.b)
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/ns/src/hello.res:
--------------------------------------------------------------------------------
1 | let a = 3 + 1
2 | 
3 | let b = 2
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/post-build/src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/post-build/src/hello.res:
--------------------------------------------------------------------------------
1 | let a = 3
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/rerror/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "rerror",
3 |   "version": "0.1.0",
4 |   "sources": ["src"],
5 |   "bs-dependencies": []
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/build_tests/rerror/src/demo.res:
--------------------------------------------------------------------------------
1 | let x: int => int = "x"
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/scoped_ppx/.gitignore:
--------------------------------------------------------------------------------
1 | .merlin
2 | !node_modules


--------------------------------------------------------------------------------
/tests/build_tests/scoped_ppx/node_modules/@hongbo/ppx1/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "type": "commonjs"
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/scoped_ppx/src/hello.res:
--------------------------------------------------------------------------------
1 | let v = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/.gitignore:
--------------------------------------------------------------------------------
1 | fixtures/*.js
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/DerivingAccessorsRecordParam.res:
--------------------------------------------------------------------------------
1 | @deriving(accessors)
2 | type t = Struct({a: int})
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/ModuleAwait.res:
--------------------------------------------------------------------------------
1 | let f0 = () => {
2 |   module O: module type of Belt.Option = await Belt.Option
3 |   O.forEach
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/OptionalImplIntf.res:
--------------------------------------------------------------------------------
1 | module M: {
2 |   type t = {x?: int}
3 | } = {
4 |   type t = {x: int}
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/OptionalInlineImplIntf.res:
--------------------------------------------------------------------------------
1 | module M: {
2 |   type t = A({x?: int})
3 | } = {
4 |   type t = A({x: int})
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/UncurriedArgsNotApplied.res:
--------------------------------------------------------------------------------
1 | let apply = (fn: unit => option<int>) => fn()
2 | 
3 | let _ = apply(Some(1))
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/UntaggedNonUnary1.res:
--------------------------------------------------------------------------------
1 | @unboxed
2 | type t = Tuple(int, string)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/UntaggedNonUnary2.res:
--------------------------------------------------------------------------------
1 | @unboxed
2 | type t = Tuple(int, string) | Float(float)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/UntaggedTupleAndArray.res:
--------------------------------------------------------------------------------
1 | @unboxed
2 | type t =
3 |   | Array(array<int>)
4 |   | Tuple((int, int))
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/UntaggedUnknown.res:
--------------------------------------------------------------------------------
1 | @unboxed
2 | type t = List(list<float>) | Float(float)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/arity_mismatch.res:
--------------------------------------------------------------------------------
1 | let makeVar = (~f, ()) => 34
2 | let makeVariables = makeVar(~f=f => f)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/arity_mismatch2.res:
--------------------------------------------------------------------------------
1 | let makeVar = (f, ()) => 34
2 | let makeVariables = makeVar(1, 2, 3)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/arity_mismatch3.res:
--------------------------------------------------------------------------------
1 | Belt.Array.map([], (a, b) => 1)
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/arity_mismatch4.res:
--------------------------------------------------------------------------------
1 | let makeVar = (~f) => 34
2 | let makeVariables = makeVar(1, ~f=f => f)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/array_item_type_mismatch.res:
--------------------------------------------------------------------------------
1 | let x = [1, 2, "hello"]
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/assert_condition.res:
--------------------------------------------------------------------------------
1 | assert("horse")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/await.res:
--------------------------------------------------------------------------------
1 | let a = async () => 3
2 | let foo = async () => {
3 |   let _ = ()
4 |   () => await a()
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/awaiting_non_promise.res:
--------------------------------------------------------------------------------
1 | let x = 1
2 | 
3 | let f = await x
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/bigint_match_literal.res:
--------------------------------------------------------------------------------
1 | let m1 = switch 1n {
2 | | 0001n => 1
3 | | 1n => 1
4 | | -0001n => -1
5 | | _ => 0
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/collections.res:
--------------------------------------------------------------------------------
1 | /* wrong type in a list */
2 | list{1, 2, "Hello"}->ignore
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/comparison_operator.res:
--------------------------------------------------------------------------------
1 | let f = Some(0)
2 | 
3 | let x = 100 === f
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/curried_expected.res:
--------------------------------------------------------------------------------
1 | let expectCurried = f => f(1) + 2
2 | 
3 | let z1 = expectCurried((x, y) => x + y)
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/curry_in_uncurry.res:
--------------------------------------------------------------------------------
1 | let f = (a, b) => a + b
2 | 
3 | f(2, 2)->Js.log
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/dict_helper.res:
--------------------------------------------------------------------------------
1 | external takesDict: dict<string> => unit = "takesDict"
2 | 
3 | takesDict({"test": "1"})
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/directive_attr.res:
--------------------------------------------------------------------------------
1 | @@directive
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/duplicate_labels_error.res:
--------------------------------------------------------------------------------
1 | type rcrd = {
2 |   name: string,
3 |   name: int,
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/for_loop_condition.res:
--------------------------------------------------------------------------------
1 | for x in 0 to "10" {
2 |   Console.log(x)
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/fun_return_poly1.res:
--------------------------------------------------------------------------------
1 | let f = (_, ~def=3) => assert(false)
2 | 
3 | let ok = f(1)(2)
4 | let err = f(1, 2)
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/function_argument_mismatch.res:
--------------------------------------------------------------------------------
1 | let makeName = (s, i) => s ++ i
2 | 
3 | let name = makeName("123", 123)
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/highlighting1.res:
--------------------------------------------------------------------------------
1 | let a: int = "hel
2 | 
3 | lo"
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/highlighting2.res:
--------------------------------------------------------------------------------
1 | let a: int = "hel
2 | 
3 |                       lo"
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/highlighting3.res:
--------------------------------------------------------------------------------
1 | let a: int = "helllllll
2 | 
3 | loooooooooooooo"
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/highlighting6.res:
--------------------------------------------------------------------------------
1 | let aaaaa = 10
2 | let b = aaaab
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/if_branch_mismatch.res:
--------------------------------------------------------------------------------
1 | let x = if true {
2 |   "123"
3 | } else {
4 |   123
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/if_condition_mismatch.res:
--------------------------------------------------------------------------------
1 | let x = if "horse" {
2 |   ()
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/jinterp.res:
--------------------------------------------------------------------------------
1 | let a = 11
2 | let b = j`number $(a)`
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/math_operator_constant.res:
--------------------------------------------------------------------------------
1 | let num = 0
2 | 
3 | let x = num + 12.
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/math_operator_float.res:
--------------------------------------------------------------------------------
1 | let num = 0
2 | 
3 | let x = num +. 12.
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/math_operator_int.res:
--------------------------------------------------------------------------------
1 | let num = 0.
2 | 
3 | let x = num + 12.
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/math_operator_string.res:
--------------------------------------------------------------------------------
1 | let x = "hello" + "what"
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/method_arity_mismatch.res:
--------------------------------------------------------------------------------
1 | let f = obj => {
2 |   obj["hi"](1, 2)
3 |   obj["hi"](1)
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/missing_label.res:
--------------------------------------------------------------------------------
1 | let f = (~a) => a ++ ""
2 | 
3 | let _ = f("")
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/missing_labels.res:
--------------------------------------------------------------------------------
1 | let f = (~a, ~b) => a ++ b
2 | 
3 | let _ = f("", "")
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/modules1.res:
--------------------------------------------------------------------------------
1 | let b = Foo.b
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/modules2.res:
--------------------------------------------------------------------------------
1 | let b = Belt.List.b
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/moreArguments1.res:
--------------------------------------------------------------------------------
1 | let x = (~a, ~b) => a + b
2 | let y = x(~a=2) + 2
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/moreArguments2.res:
--------------------------------------------------------------------------------
1 | let x = (a, b) => a + b
2 | let y = x(2) + 2
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/moreArguments3.res:
--------------------------------------------------------------------------------
1 | let x = (a, b, c, d) => a + b
2 | let y = x(2) + 2
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/moreArguments4.res:
--------------------------------------------------------------------------------
1 | let x = (a, ~b, ~c, ~d) => a + b
2 | let y = x(2) + 2
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/multiple_tag_1.res:
--------------------------------------------------------------------------------
1 | type ambiguous1 =
2 |   | @as("x") A(int)
3 |   | @as("x") B(int)
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/multiple_tag_2.res:
--------------------------------------------------------------------------------
1 | type ambiguous2 =
2 |   | @as(3) A(int)
3 |   | @as(3) B(int)
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/non_function_uncurried_apply.res:
--------------------------------------------------------------------------------
1 | let nonfun = 2
2 | let _ = nonfun(3)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/opt_args_arity.res:
--------------------------------------------------------------------------------
1 | let f = (~a=0, b, c) => a + b + c
2 | let x = f(42)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/partial_app.res:
--------------------------------------------------------------------------------
1 | let f = (a, b, c) => {
2 |   a + b + c
3 | }
4 | 
5 | f(1, 2)
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/pattern_matching_on_option_but_value_not_option.res:
--------------------------------------------------------------------------------
1 | let x = 1
2 | 
3 | switch x {
4 | | Some(1) => ()
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/pattern_matching_on_value_but_is_option.res:
--------------------------------------------------------------------------------
1 | let x = Some(1)
2 | 
3 | switch x {
4 | | 1 => ()
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/polyvariants_no_overlap.res:
--------------------------------------------------------------------------------
1 | let a: [#Resize | #KeyDown] = #Resize
2 | let b: [#Click] = a
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives1.res:
--------------------------------------------------------------------------------
1 | /* got float, wanted int */
2 | 2. + 2
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives10.res:
--------------------------------------------------------------------------------
1 | let aaaaa = 10
2 | let b = aaaab
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives2.res:
--------------------------------------------------------------------------------
1 | /* got int, wanted string */
2 | 2 ++ " things"
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives3.res:
--------------------------------------------------------------------------------
1 | /* Too many arguments */
2 | let x = a => a + 2
3 | x(2, 4)
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives4.res:
--------------------------------------------------------------------------------
1 | /* Not a function */
2 | let x = 10
3 | x(10)
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives5.res:
--------------------------------------------------------------------------------
1 | /* Not enough arguments */
2 | type x = X(int, float)
3 | X(10)->ignore
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives6.res:
--------------------------------------------------------------------------------
1 | /* Wrong constructor argument */
2 | type x = X(int, float)
3 | X(10, 10)->ignore
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives8.res:
--------------------------------------------------------------------------------
1 | let asd = aaa
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/primitives9.res:
--------------------------------------------------------------------------------
1 | let a: int = "hello"
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/private_without_body.res:
--------------------------------------------------------------------------------
1 | %%private
2 | let a = 2
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/react_component_with_props_external.res:
--------------------------------------------------------------------------------
1 | @react.componentWithProps
2 | external make: React.element = "default"
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/repeated_def_extension_constr.res:
--------------------------------------------------------------------------------
1 | type a = ..
2 | 
3 | type a
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/repeated_def_module_types.res:
--------------------------------------------------------------------------------
1 | module type M = {}
2 | 
3 | module type M = {}
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/repeated_def_modules.res:
--------------------------------------------------------------------------------
1 | module M = {}
2 | 
3 | module M = {}
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/repeated_def_types.res:
--------------------------------------------------------------------------------
1 | type a
2 | 
3 | type a
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/stdlib_removed_in_error.res:
--------------------------------------------------------------------------------
1 | type x = Stdlib.Promise.t<int>
2 | 
3 | let x: x = Stdlib.Promise.resolve("hello")
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/suggest_module_for_missing_identifier.res:
--------------------------------------------------------------------------------
1 | console.log("Hello")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/suggest_module_for_missing_identifier_with_spellcheck.res:
--------------------------------------------------------------------------------
1 | let consol = 1
2 | console.log("Hello")
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/syntaxErrors1.res:
--------------------------------------------------------------------------------
1 | let b = fo;;;;;;;;;;;;;;;;
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/syntaxErrors2.res:
--------------------------------------------------------------------------------
1 | let () =
2 |   I'm glad you're looking at this file =)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/syntaxErrors3.res:
--------------------------------------------------------------------------------
1 | let a = print_char('a)
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/syntaxErrors5.res:
--------------------------------------------------------------------------------
1 | let a = (1, 2
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/top_level_fn_call_not_unit.res:
--------------------------------------------------------------------------------
1 | let returnsSomething = () => 123
2 | 
3 | returnsSomething()
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/top_level_value_not_unit.res:
--------------------------------------------------------------------------------
1 | 1234
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/try_catch_same_type.res:
--------------------------------------------------------------------------------
1 | let x = try {1} catch {
2 | | _ => "hello"
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/type1.res:
--------------------------------------------------------------------------------
1 | let x = 2. + 2
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/type3.res:
--------------------------------------------------------------------------------
1 | let u = []
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/unbound_record_field.res:
--------------------------------------------------------------------------------
1 | let foo = x =>
2 |   switch x {
3 |   | {someUnknownField: 123} => ()
4 |   }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/uncurried_expected.res:
--------------------------------------------------------------------------------
1 | let apply = f => f(1)
2 | let z = apply(x => x + 1)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/unknown_tagged_template_function.res:
--------------------------------------------------------------------------------
1 | let res = tagg`| 5 × 10 = ${5} |`
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/unused_variable.res:
--------------------------------------------------------------------------------
1 | let x = {
2 |   let f = 12
3 |   13
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/unused_warnings.res:
--------------------------------------------------------------------------------
1 | let a = 3
2 | let a = 33 + 3
3 | let a = 33 + 3 + 3
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_coercion_bigint_as.res:
--------------------------------------------------------------------------------
1 | type x = | @as(1n) One | Two
2 | 
3 | let x = One
4 | 
5 | let y = (x :> bigint)
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_coercion_float_as.res:
--------------------------------------------------------------------------------
1 | type x = | @as(1.1) One | Two
2 | 
3 | let x = One
4 | 
5 | let y = (x :> float)
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_coercion_int_as.res:
--------------------------------------------------------------------------------
1 | type x = | @as(1) One | Two
2 | 
3 | let x = One
4 | 
5 | let y = (x :> int)
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_coercion_non_unboxed_with_payload.res:
--------------------------------------------------------------------------------
1 | type x = One(bool)
2 | let x = One(true)
3 | let y = (x :> string)
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_coercion_string.res:
--------------------------------------------------------------------------------
1 | type x = One(bool) | Two
2 | 
3 | let x = One(true)
4 | 
5 | let y = (x :> string)
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_coercion_string_as.res:
--------------------------------------------------------------------------------
1 | type x = One | @as(2) Two
2 | 
3 | let x = One
4 | 
5 | let y = (x :> string)
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_spread_abstract_type.res:
--------------------------------------------------------------------------------
1 | type a
2 | type b = | ...a | Other
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_spread_extensible_variant.res:
--------------------------------------------------------------------------------
1 | type a = ..
2 | type b = | ...a | Other
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_spread_recursive.res:
--------------------------------------------------------------------------------
1 | type rec a = One | Two | Three and b = Four | Five and c = | ...a | ...b
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_spread_tag_missing.res:
--------------------------------------------------------------------------------
1 | @tag("kind") type a = One(int) | Two(string)
2 | type b = | ...a | Three(bool)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_spread_type_parameters.res:
--------------------------------------------------------------------------------
1 | type a<'a> = One | Two('a)
2 | type b = | ...a<int> | Three
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/variant_spread_unboxed_mismatch.res:
--------------------------------------------------------------------------------
1 | @unboxed type a = One(int) | Two(string)
2 | type b = | ...a | Three(bool)
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/warnings1.res:
--------------------------------------------------------------------------------
1 | let x = (a, b) => a + b
2 | let z = () => {
3 |   x(10)
4 |   10
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/warnings2.res:
--------------------------------------------------------------------------------
1 | let z = () => {
2 |   10
3 |   10
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/while_condition.res:
--------------------------------------------------------------------------------
1 | while "horse" {
2 |   Console.log("What")
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/build_tests/super_errors/fixtures/wrong_name_record_field.res:
--------------------------------------------------------------------------------
1 | type d = {z: int}
2 | 
3 | let ff: d = {
4 |   zz: 123,
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | !node_modules


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/a/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "a",
3 |   "version": "1.0.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/a/src/src.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("src")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/a/tests/test.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("test")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/node_modules/b/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "b",
3 |   "version": "1.0.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/node_modules/b/src/src.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("src")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/node_modules/b/tests/test.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("test")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/node_modules/c/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "c",
3 |   "version": "1.0.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/node_modules/c/src/src.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("src")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency1/node_modules/c/tests/test.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("test")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | !node_modules


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/a/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "a",
3 |   "version": "1.0.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/a/src/src.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("src")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/a/tests/test.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("test")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/node_modules/b/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "b",
3 |   "version": "1.0.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/node_modules/b/src/src.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("src")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/node_modules/b/tests/test.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("test")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/node_modules/c/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "c",
3 |   "version": "1.0.0"
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/node_modules/c/src/src.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("src")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/transitive_pinned_dependency2/node_modules/c/tests/test.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("test")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/unboxed_bool_with_const/src/Main.res:
--------------------------------------------------------------------------------
1 | @unboxed
2 | type t<'a> =
3 |   | Bool(bool)
4 |   | @as(false) False
5 |   | @as(true) True
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/unicode/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "unicode",
3 |   "sources": {
4 |     "dir": ".",
5 |     "subdirs": true
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/tests/build_tests/unicode/📕annotation/a.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/unicode/📗block/b.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/unicode/📙inline/c.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/warn_legacy_config/src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_deps/src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_deps/test/test.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_devdeps/src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_devdeps/test/test.res:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names/src/404.res:
--------------------------------------------------------------------------------
1 | module A = Demo
2 | let a = 1
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names/src/[...params].res:
--------------------------------------------------------------------------------
1 | module A = Demo
2 | let a = 1
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names/src/[...params_max_3].res:
--------------------------------------------------------------------------------
1 | module A = Demo
2 | let a = 1
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names/src/[[...params]].res:
--------------------------------------------------------------------------------
1 | module A = Demo
2 | let a = 1
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names/src/[slug_or_ID].res:
--------------------------------------------------------------------------------
1 | module A = Demo
2 | let a = 1
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names/src/_app.res:
--------------------------------------------------------------------------------
1 | module A = Demo
2 | let a = 1
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names/src/demo.res:
--------------------------------------------------------------------------------
1 | let a = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names/src/utils.test.res:
--------------------------------------------------------------------------------
1 | module A = Demo
2 | let a = 1
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names_not_found_bug/src/demo.res:
--------------------------------------------------------------------------------
1 | let a = 1
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/weird_names_not_found_bug/src/demo.test.res:
--------------------------------------------------------------------------------
1 | module A = Demo
2 | let a = 1
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/x-y/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "x-y",
3 |   "version": "0.1.0",
4 |   "sources": ["x-src"]
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/build_tests/x-y/x-src/demo.res:
--------------------------------------------------------------------------------
1 | let () = Js.log("Hello, ReScript")
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/xpkg/rescript.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "_",
3 |   "sources": "."
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/build_tests/zerocycle/.gitignore:
--------------------------------------------------------------------------------
1 | *.bs.js


--------------------------------------------------------------------------------
/tests/build_tests/zerocycle/src/demo.res:
--------------------------------------------------------------------------------
1 | module Foo = {}
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/zerocycle/src/demo2.res:
--------------------------------------------------------------------------------
1 | module Foo2 = {}
2 | 


--------------------------------------------------------------------------------
/tests/build_tests/zerocycle/src/foo.res:
--------------------------------------------------------------------------------
1 | open! Demo
2 | include Foo
3 | 


--------------------------------------------------------------------------------
/tests/build_tests/zerocycle/src/foo2.res:
--------------------------------------------------------------------------------
1 | open Demo2
2 | include Foo2
3 | 


--------------------------------------------------------------------------------
/tests/dependencies/.gitattributes:
--------------------------------------------------------------------------------
1 | * linguist-vendored
2 | 


--------------------------------------------------------------------------------
/tests/dependencies/.gitignore:
--------------------------------------------------------------------------------
1 | *.res.js
2 | 


--------------------------------------------------------------------------------
/tests/dependencies/rescript-react/package.json:
--------------------------------------------------------------------------------
1 | {
2 |   "name": "@tests/rescript-react",
3 |   "private": true
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/docstring_tests/.gitignore:
--------------------------------------------------------------------------------
1 | generated_mocha_test.res*
2 | 


--------------------------------------------------------------------------------
/tests/docstring_tests/DocTest.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/dune:
--------------------------------------------------------------------------------
1 | (dirs ounit_tests syntax_benchmarks syntax_tests)
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Date.res:
--------------------------------------------------------------------------------
1 | type t = Js.Date.t
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Dict.res:
--------------------------------------------------------------------------------
1 | type t<'a> = dict<'a>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/DynamicallyLoadedComponent.res:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make = (~s) => React.string(s)
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/ExportWithRename.res:
--------------------------------------------------------------------------------
1 | @genType.as("Renamed") @react.component
2 | let make = (~s) => React.string(s)
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/IgnoreInterface.res:
--------------------------------------------------------------------------------
1 | @gentype
2 | type t = int
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/JSResource.res:
--------------------------------------------------------------------------------
1 | type t<'a>
2 | 
3 | @module external jSResource: string => t<'a> = "JSResource"
4 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/LabeledFun.res:
--------------------------------------------------------------------------------
1 | @genType
2 | let labelled = (a, ~b=3, ~c, d, ~e, ~f) => a + b + c + d + e + f
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/LetPrivate.res:
--------------------------------------------------------------------------------
1 | %%private(@genType let x = 34)
2 | 
3 | @genType let y = x
4 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Machine.res:
--------------------------------------------------------------------------------
1 | type aa = A(int)
2 | 
3 | @genType
4 | let a = A(3)
5 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Map_.res:
--------------------------------------------------------------------------------
1 | type t<'k, 'v>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/ModuleResolution1.res:
--------------------------------------------------------------------------------
1 | @genType
2 | type t1 = {
3 |   foo: string,
4 |   bar: int,
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/ModuleResolution2.res:
--------------------------------------------------------------------------------
1 | @genType
2 | type t2 = {dependency: ModuleResolution1.t1}
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/MyModule.res:
--------------------------------------------------------------------------------
1 | @genType
2 | type t = int
3 | 
4 | @genType
5 | let add = (a: t, b: t): t => a + b
6 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/NestedModulesInSignature.res:
--------------------------------------------------------------------------------
1 | module Universe = {
2 |   let theAnswer = 42
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/NestedModulesInSignature.resi:
--------------------------------------------------------------------------------
1 | module Universe: {
2 |   @genType let theAnswer: int
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Null.res:
--------------------------------------------------------------------------------
1 | type t<'a> = Js.null<'a>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Nullable.res:
--------------------------------------------------------------------------------
1 | type t<'a> = Js.nullable<'a>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/NumericPolyVar.res:
--------------------------------------------------------------------------------
1 | @genType
2 | type t = [#12 | #0 | #b]
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/OnClick2.res:
--------------------------------------------------------------------------------
1 | @genType @react.component
2 | let make = (~onClick) => <div onClick />
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Promise.res:
--------------------------------------------------------------------------------
1 | type t<'a> = promise<'a>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/RegExp.res:
--------------------------------------------------------------------------------
1 | type t = Js.Re.t
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Set_.res:
--------------------------------------------------------------------------------
1 | type t<'a>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/TypeParams1.res:
--------------------------------------------------------------------------------
1 | @gentype
2 | type ocaml_array<'a> = array<'a>
3 | 
4 | let exportSomething = 10
5 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Undefined.res:
--------------------------------------------------------------------------------
1 | type t<'a> = Js.undefined<'a>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Usage.res:
--------------------------------------------------------------------------------
1 | let a = 5
2 | @genType
3 | let b = Wrapper.MyModuleAlias.add(a, 3)
4 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Warnings.res:
--------------------------------------------------------------------------------
1 | @genType("ddd")
2 | let x = 42
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/WeakMap.res:
--------------------------------------------------------------------------------
1 | type t<'k, 'v>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/WeakSet.res:
--------------------------------------------------------------------------------
1 | type t<'a>
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/Wrapper.res:
--------------------------------------------------------------------------------
1 | @genType
2 | module MyModuleAlias = MyModule
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/counter.res:
--------------------------------------------------------------------------------
1 | @genType
2 | let b = Machine.A(12)
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 |   margin: 0;
3 |   padding: 0;
4 |   font-family: sans-serif;
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | /// <reference types="react-scripts" />
2 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/shims/Jsx.shim.ts:
--------------------------------------------------------------------------------
1 | import type { ReactElement } from "react";
2 | 
3 | export type element = ReactElement;
4 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/strange_file_names/404.res:
--------------------------------------------------------------------------------
1 | @genType
2 | let x = 123
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/strange_file_names/AppModal.web.res:
--------------------------------------------------------------------------------
1 | @genType
2 | let x = 123
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/strange_file_names/_under.res:
--------------------------------------------------------------------------------
1 | @genType
2 | let x = 123
3 | 


--------------------------------------------------------------------------------
/tests/gentype_tests/typescript-react-example/src/strange_file_names/with_underscore.res:
--------------------------------------------------------------------------------
1 | @genType
2 | let x = 123
3 | 


--------------------------------------------------------------------------------
/tests/package_tests/installation_test/src/Test.res:
--------------------------------------------------------------------------------
1 | Js.Console.log("Hello, world!")
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/api/reiSyntax.resi:
--------------------------------------------------------------------------------
1 | // test .rei file
2 | let x: int
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/api/resSyntax.res:
--------------------------------------------------------------------------------
1 | // test file
2 | 
3 | if true {
4 |   Js.log("true") 
5 | } else {
6 |   Js.log("false")
7 | }
8 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/api/resiSyntax.resi:
--------------------------------------------------------------------------------
1 | // test interface file
2 | 
3 | let x: int
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/expected/gentype.resi.txt:
--------------------------------------------------------------------------------
1 | @genType
2 | let x: int
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/expected/letprivate.res.txt:
--------------------------------------------------------------------------------
1 | %%private(let x = 34)
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/expected/refSugarReason.res.txt:
--------------------------------------------------------------------------------
1 | let x = foo.contents
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/expected/ternary.res.txt:
--------------------------------------------------------------------------------
1 | let a = x ? 1 : 2
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/expected/underscoreSugar.res.txt:
--------------------------------------------------------------------------------
1 | let photo = pricedRoom["room"]["photos"]->filterNone->Array.get(_, 0)
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/expected/unicode.res.txt:
--------------------------------------------------------------------------------
1 | let x = "✅ foo bar"
2 | 
3 | let x = "\n okokok"
4 | 
5 | let z = "\t \b \n okok 🙈"
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/expected/variant.res.txt:
--------------------------------------------------------------------------------
1 | type t = | @foo X
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/gentype.resi:
--------------------------------------------------------------------------------
1 | @genType
2 | let x: int
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/letprivate.res:
--------------------------------------------------------------------------------
1 | %%private(let x = 34)
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/moduleLanguage.res:
--------------------------------------------------------------------------------
1 | let someFunctorAsFunction = (x: module(MT)): module(ResT) => module(SomeFunctor(unpack(x)))
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/refSugarReason.res:
--------------------------------------------------------------------------------
1 | let x = foo.contents
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/ternary.res:
--------------------------------------------------------------------------------
1 | let a = x ? 1 : 2
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/underscoreSugar.res:
--------------------------------------------------------------------------------
1 | let photo = pricedRoom["room"]["photos"]->filterNone->Array.get(_, 0)
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/unicode.res:
--------------------------------------------------------------------------------
1 | let x = "✅ foo bar"
2 | 
3 | let x = "\n okokok"
4 | 
5 | let z = "\t \b \n okok 🙈"
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/conversion/reason/variant.res:
--------------------------------------------------------------------------------
1 | type t = | @foo X
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/bs-webapi/src/Webapi/Webapi__Performance.res:
--------------------------------------------------------------------------------
1 | type t
2 | 
3 | @send external now: t => float = ""
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/covid-19charts.com/src/CopyToClipboard.res:
--------------------------------------------------------------------------------
1 | @module external copy: string => unit = "copy-to-clipboard"
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/ludum-dare-46/IndexHot.res:
--------------------------------------------------------------------------------
1 | let a = Json.parse("{}")
2 | Reprocessing.hotreload("src/index.re")
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/nook-exchange/TemporaryState.res:
--------------------------------------------------------------------------------
1 | type t = FromProfileBrowser
2 | let state: ref<option<t>> = ref(None)
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/layouts/SchoolAdminNavbar__Types.res:
--------------------------------------------------------------------------------
1 | module Course = SchoolAdminNavbar__Course
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/layouts/StudentTopNav__Types.res:
--------------------------------------------------------------------------------
1 | module NavLink = StudentTopNav__NavLink
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/packs/SchoolsCoursesIndexPack.res:
--------------------------------------------------------------------------------
1 | ReactDOMRe.renderToElementWithId(<CourseEditor />, "course-editor")
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/schools/CoachesSchoolIndex__Types.res:
--------------------------------------------------------------------------------
1 | module Coach = CoachesSchoolIndex__Coach
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/schools/CourseAuthors__Types.res:
--------------------------------------------------------------------------------
1 | module Author = CourseAuthors__Author
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/schools/CourseEditor__Types.res:
--------------------------------------------------------------------------------
1 | module Course = CourseEditor__Course
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/schools/SchoolCustomize__Types.res:
--------------------------------------------------------------------------------
1 | module Customizations = SchoolCustomize__Customizations
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/shared/Date.res:
--------------------------------------------------------------------------------
1 | let iso8601 = t => t->DateFns.format("YYYY-MM-DD")
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/shared/Icon.res:
--------------------------------------------------------------------------------
1 | include PfIcon
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/shared/Loading.res:
--------------------------------------------------------------------------------
1 | type t =
2 |   | NotLoading
3 |   | Reloading
4 |   | LoadingMore
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/pupilfirst/users/UsersHome__Types.res:
--------------------------------------------------------------------------------
1 | module Course = UsersHome__Course
2 | module Community = UsersHome__Community
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/idempotency/reasongl/ReasonglInterface.res:
--------------------------------------------------------------------------------
1 | module Gl = RGLInterface
2 | 
3 | module Constants = RGLConstants
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/array.res:
--------------------------------------------------------------------------------
1 | // missing ] before )
2 | let xs = x.map(key => [key, predicates[key])
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/emptyBlock.res:
--------------------------------------------------------------------------------
1 | let x = {}
2 | 
3 | let f = (a, b) => {}
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/emptyeof.res:
--------------------------------------------------------------------------------
1 | let x = "
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/expected/emptyBlock.res.txt:
--------------------------------------------------------------------------------
1 | let x = {  }
2 | let f [arity:2]a b = {  }


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/expected/stringLiteral.res.txt:
--------------------------------------------------------------------------------
1 | ;;match x with | {js|\x37|js} -> () | {js|\x7b|js} -> ()


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/id.res:
--------------------------------------------------------------------------------
1 | n.R.


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/if.res:
--------------------------------------------------------------------------------
1 | // missing brace below
2 | if (match)
3 |   let a = 1
4 |   a + 1
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/misc.res:
--------------------------------------------------------------------------------
1 | let x = _ + 1
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/object.res:
--------------------------------------------------------------------------------
1 | let obj = {"\055": "octal escape", "\123": "another octal escape"}
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/stringLiteral.res:
--------------------------------------------------------------------------------
1 | switch x {
2 | | "\055" => ()
3 | | "\123" => ()
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/expressions/taggedTemplateLiterals.res:
--------------------------------------------------------------------------------
1 | foo()`null`
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/other/for.res:
--------------------------------------------------------------------------------
1 | for x
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/other/hashIdent.res:
--------------------------------------------------------------------------------
1 | let x = #10s
2 | 
3 | type t = [ #red | #10s ] 
4 | 
5 | switch x {
6 | | #10s => ()
7 | }
8 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/other/patternMatching.res:
--------------------------------------------------------------------------------
1 | switch expr {
2 | }
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/scanner/badCharacter.res:
--------------------------------------------------------------------------------
1 | let $ = 1


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/scanner/bigint.res:
--------------------------------------------------------------------------------
1 | let bigint = 3n
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/scanner/escapeSequence.res:
--------------------------------------------------------------------------------
1 | let x = "\055"
2 | 
3 | let x = "\123"
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/scanner/expected/bigint.res.txt:
--------------------------------------------------------------------------------
1 | let bigint = 3n


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/scanner/expected/escapeSequence.res.txt:
--------------------------------------------------------------------------------
1 | let x = {js|\x37|js}
2 | let x = {js|\x7b|js}


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/scanner/unclosedComment.res:
--------------------------------------------------------------------------------
1 | /* eof
2 |  * reached
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/scanner/unclosedString.res:
--------------------------------------------------------------------------------
1 | let z = "eof
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/signature/attributes.resi:
--------------------------------------------------------------------------------
1 | module type MissingItem = {
2 |   @attr
3 | }
4 | 
5 | @attrWithoutItem
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/signature/closingBraces.resi:
--------------------------------------------------------------------------------
1 | let x: int
2 | 
3 | }}}
4 | 
5 | let y: int
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/structure/attributes.res:
--------------------------------------------------------------------------------
1 | module MissingExpression = {
2 |   @attr
3 | }
4 | 
5 | @attrWithNoExpression
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/structure/closingBraces.res:
--------------------------------------------------------------------------------
1 | let x = 1
2 | 
3 | }}}
4 | 
5 | let y = 2
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/structure/consecutive.res:
--------------------------------------------------------------------------------
1 | open Foo exception Bar
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/structure/external.res:
--------------------------------------------------------------------------------
1 | // missing JS value name
2 | external setTimeout: (unit => unit, int) => float =
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/structure/letBindingPatternKeyword.res:
--------------------------------------------------------------------------------
1 | let open = 1
2 | let for = 3
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/emptyInlineRecord.res:
--------------------------------------------------------------------------------
1 | type node<'a> =
2 |   | Nil
3 |   | Node({})
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/emptyRecord.res:
--------------------------------------------------------------------------------
1 | type record = {}
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/expected/emptyInlineRecord.res.txt:
--------------------------------------------------------------------------------
1 | type nonrec 'a node =
2 |   | Nil 
3 |   | Node of {
4 |   } 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/expected/emptyRecord.res.txt:
--------------------------------------------------------------------------------
1 | type nonrec record = {
2 |   }


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/keywordOnly.res:
--------------------------------------------------------------------------------
1 | type


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/namedParameters.res:
--------------------------------------------------------------------------------
1 | type  draw = (stroke: pencil) => unit
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/polyvariant.res:
--------------------------------------------------------------------------------
1 | type t = [< ]
2 | 
3 | type z = [< | #A | #B > ]
4 | 
5 | type rec t = []
6 | 
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/record.res:
--------------------------------------------------------------------------------
1 | type observation = {
2 |   observed: int,
3 |   observer:
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/recordDocComment.res:
--------------------------------------------------------------------------------
1 | type a = {
2 |   foo: string, /** here */
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typeDef/recordMutable.res:
--------------------------------------------------------------------------------
1 | type d = {
2 |   foo: string, mutable
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typexpr/garbage.res:
--------------------------------------------------------------------------------
1 | @module("moduleName")
2 | external printName: (~name:?, unit) => unit = "printName"
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/errors/typexpr/typeVar.res:
--------------------------------------------------------------------------------
1 | type x<'A> = '_
2 | type x<'A> = 'let
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/expressions/expected/float.res.txt:
--------------------------------------------------------------------------------
1 | ;;1. /. 2.
2 | ;;3. *. 4.
3 | ;;2. ** 2.
4 | ;;10.2 +. 5.4
5 | ;;28.9 -. 13.8


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/interface/expected/interface.resi.txt:
--------------------------------------------------------------------------------
1 | val x : int
2 | val s : string


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/interface/interface.resi:
--------------------------------------------------------------------------------
1 | let x: int
2 | 
3 | let s: string
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/modexpr/constrained.res:
--------------------------------------------------------------------------------
1 | module X = (A: MyMod)
2 | 
3 | include (X : MyMod)
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/modexpr/expected/constrained.res.txt:
--------------------------------------------------------------------------------
1 | module X : MyMod = A 
2 | include (X : MyMod)


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/modexpr/expected/structure.res.txt:
--------------------------------------------------------------------------------
1 | module X = struct let a = 1 end
2 | include struct let b = 2 end


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/modexpr/structure.res:
--------------------------------------------------------------------------------
1 | module X = {
2 |   let a = 1
3 | }
4 | 
5 | include {
6 |   let b = 2
7 | }
8 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/pattern/expected/var.res.txt:
--------------------------------------------------------------------------------
1 | let x = 1
2 | let list = 2


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/pattern/var.res:
--------------------------------------------------------------------------------
1 | let x = 1
2 | let list = 2
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/signature/expected/let.res.txt:
--------------------------------------------------------------------------------
1 | module type Sig  = sig val x : int val y : string[@@attr ] end


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/signature/let.res:
--------------------------------------------------------------------------------
1 | module type Sig = {
2 |   let x: int
3 | 
4 |   @attr
5 |   let y: string
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/structure/expected/includeStatement.res.txt:
--------------------------------------------------------------------------------
1 | include Belt.Array
2 | include Belt.Array[@@onInclude ]


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/structure/expected/modType.res.txt:
--------------------------------------------------------------------------------
1 | module type X  = Foo
2 | module type X  = Foo[@@attr ]


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/structure/expected/module.res.txt:
--------------------------------------------------------------------------------
1 | module A : Map = struct let m = 2 end 
2 | module A = struct let m = 2 end


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/structure/includeStatement.res:
--------------------------------------------------------------------------------
1 | include Belt.Array
2 | 
3 | @onInclude include Belt.Array
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/structure/modType.res:
--------------------------------------------------------------------------------
1 | module type X = Foo
2 | 
3 | @attr
4 | module type X = Foo
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/structure/module.res:
--------------------------------------------------------------------------------
1 | module A: Map = {let m = 2}
2 | module A = {let m = 2}
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typedefinition/bsObject.res:
--------------------------------------------------------------------------------
1 | type foo<'a> = {.. "foo": int} as 'a
2 | type foo<'a> = {"foo": int} as 'a
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typedefinition/diamond.res:
--------------------------------------------------------------------------------
1 | // >= shouldn't be picked up as infix op
2 | type t<'a, 'b>= ..
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typedefinition/expected/diamond.res.txt:
--------------------------------------------------------------------------------
1 | type nonrec ('a, 'b) t = ..


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typedefinition/expected/typeNonrec.res.txt:
--------------------------------------------------------------------------------
1 | type nonrec t =
2 |   | Water 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typedefinition/typeNonrec.res:
--------------------------------------------------------------------------------
1 | // just support nonrec for fault tolerance
2 | type nonrec t = Water
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typexpr/any.res:
--------------------------------------------------------------------------------
1 | type t = _
2 | 
3 | let t: _ = x
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typexpr/expected/any.res.txt:
--------------------------------------------------------------------------------
1 | type nonrec t = _
2 | let (t : _) = x


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typexpr/expected/parenthesized.res.txt:
--------------------------------------------------------------------------------
1 | type nonrec t = ((a:int -> unit (a:1))[@attr ])


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/grammar/typexpr/parenthesized.res:
--------------------------------------------------------------------------------
1 | type t = @attr ((~a: int) => unit)
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/infiniteLoops/polymorphicVariantType.res:
--------------------------------------------------------------------------------
1 | type x = [<y>


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/infiniteLoops/templateEof.res:
--------------------------------------------------------------------------------
1 | et foo = x =>
2 |   switch x {
3 |   | `${


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/comments.res:
--------------------------------------------------------------------------------
1 | /* nested /* comments */ */
2 | 
3 | /* lvl 0 /* lvl 1 /* lvl 2 */ */ */
4 | let x = 1
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/expected/comments.res.txt:
--------------------------------------------------------------------------------
1 | let x = 1


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/expected/semi.res.txt:
--------------------------------------------------------------------------------
1 | type nonrec t =
2 |   | Red 
3 | ;;Red
4 | ;;foo := 1


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/expected/singleLineCommentWithoutNewline.res.txt:
--------------------------------------------------------------------------------
1 | ;;RootView.init ()


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/onlyMultilineComment.res:
--------------------------------------------------------------------------------
1 | /*
2 |  * one comment
3 |  * here
4 |  */
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/onlyMultilineComment.resi:
--------------------------------------------------------------------------------
1 | /*
2 |  * multi
3 |  * line
4 |  * comment
5 |  */
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/onlySinglelineComment.res:
--------------------------------------------------------------------------------
1 | // one single-line comment
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/onlySinglinelineComment.resi:
--------------------------------------------------------------------------------
1 | // one single-line comment
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/semi.res:
--------------------------------------------------------------------------------
1 | type t = Red
2 | Red
3 | (foo) := 1
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/other/singleLineCommentWithoutNewline.res:
--------------------------------------------------------------------------------
1 | RootView.init()
2 | 
3 | //int


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/comments/eof.res:
--------------------------------------------------------------------------------
1 | let x = 1
2 | /* eof
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/expression/emptyBlock.res:
--------------------------------------------------------------------------------
1 | let x = {}
2 | 
3 | let f = (a, b) => {}
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/expression/expected/emptyBlock.res.txt:
--------------------------------------------------------------------------------
1 | let x = {  }
2 | let f [arity:2]a b = {  }


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/expression/expected/infinite.res.txt:
--------------------------------------------------------------------------------
1 | let smallest = (heap.compare ()) < (a -> (f b))


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/expression/if.res:
--------------------------------------------------------------------------------
1 | if (foo == bar) Js.log("if-branch") else Js.log("else-branch")
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/expression/infinite.res:
--------------------------------------------------------------------------------
1 | let smallest =
2 |   heap.compare(.) < a->f(b)
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/pattern/array.res:
--------------------------------------------------------------------------------
1 | switch x {
2 | | [a, b => ()
3 | | [a, [c, d => ()
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/pattern/record.res:
--------------------------------------------------------------------------------
1 | switch x {
2 | | {a, b: {x, y => ()
3 | | {...x, y} => ()
4 | | {a, _, b} => ()
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/pattern/tuple.res:
--------------------------------------------------------------------------------
1 | switch x {
2 | | (a => ()
3 | | (a, (b, c) => ()
4 | | (a, (b, c => ()
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/string/emptyeof.res:
--------------------------------------------------------------------------------
1 | let x = "
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/string/eof.res:
--------------------------------------------------------------------------------
1 | let x = "eof here
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/string/es6template.res:
--------------------------------------------------------------------------------
1 | let x = `this contains ${foo}, missing closing
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/string/expected/unclosed.res.txt:
--------------------------------------------------------------------------------
1 | let x = {js|unclosed|js}
2 | let y = 1


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/string/unclosed.res:
--------------------------------------------------------------------------------
1 | let x = "unclosed"
2 | 
3 | let y = 1
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/structure/letBinding.res:
--------------------------------------------------------------------------------
1 | let x = = doStuff(y)
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/typeDef/typeParams.res:
--------------------------------------------------------------------------------
1 | type node('a) = {
2 |   _value: Js.Nullable.value<'a>
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/parsing/recovery/typexpr/typeConstructorArgs.res:
--------------------------------------------------------------------------------
1 | type node<'a> = {
2 |   _value: Js.Nullable.value('a)
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/ppx/react/interfaceWithRef.resi:
--------------------------------------------------------------------------------
1 | @react.component
2 | let make: (~x: string, ~ref: ReactDOM.Ref.currentDomRef=?) => React.element


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/expected/fileWithOneSingleLineComment.res.txt:
--------------------------------------------------------------------------------
1 | // retain this comment
2 | 
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/expected/interfaceWithOneSingleComment.resi.txt:
--------------------------------------------------------------------------------
1 | // retain this comment
2 | 
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/expected/interfaceWithOnlyComments.resi.txt:
--------------------------------------------------------------------------------
1 | // test
2 | 
3 | /* test */
4 | 
5 | // ok
6 | 
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/expected/whitespaceCase1.res.txt:
--------------------------------------------------------------------------------
1 | let x = 1
2 | // comment
3 | 
4 | let 123 = 123
5 | // comment2
6 | let f = ()
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/expected/whitespaceCase2.res.txt:
--------------------------------------------------------------------------------
1 | let a = 2 // c2
2 | 
3 | let b = 1
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/fileWithOneSingleLineComment.res:
--------------------------------------------------------------------------------
1 | // retain this comment
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/fileWithOnlyComments.res:
--------------------------------------------------------------------------------
1 | // test
2 | 
3 | /* multi
4 | line
5 | comment
6 | */
7 | 
8 | // more comments
9 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/interfaceWithOneSingleComment.resi:
--------------------------------------------------------------------------------
1 | // retain this comment
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/interfaceWithOnlyComments.resi:
--------------------------------------------------------------------------------
1 | // test
2 | 
3 | /* test */
4 | 
5 | // ok
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/whitespaceCase1.res:
--------------------------------------------------------------------------------
1 | let x = 1
2 | // comment
3 | 
4 | let 123 = 123
5 | // comment2
6 | let f = ()
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/comments/whitespaceCase2.res:
--------------------------------------------------------------------------------
1 | let a = 
2 |   2 // c2
3 | 
4 | let b = 1
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/expr/expected/letexception.res.txt:
--------------------------------------------------------------------------------
1 | let x = {
2 |   exception Foo
3 |   sideEffect
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/expr/letexception.res:
--------------------------------------------------------------------------------
1 | let x = {
2 |   exception Foo
3 |   sideEffect
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/modExpr/await.res:
--------------------------------------------------------------------------------
1 | module M = await ME
2 | 
3 | module M = await (ME: MT)
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/modExpr/expected/await.res.txt:
--------------------------------------------------------------------------------
1 | module M = await ME
2 | 
3 | module M = await (ME: MT)
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/modExpr/expected/extension.res.txt:
--------------------------------------------------------------------------------
1 | module React = %import("react")
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/modExpr/extension.res:
--------------------------------------------------------------------------------
1 | module React = %import("react")
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/modType/expected/extension.res.txt:
--------------------------------------------------------------------------------
1 | module type ReactInterface = %import("react-bindings")
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/modType/extension.res:
--------------------------------------------------------------------------------
1 | module type ReactInterface = %import("react-bindings")
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/comments.res:
--------------------------------------------------------------------------------
1 | /* nested /* comments */ */
2 | 
3 | /* lvl 0 /* lvl 1 /* lvl 2 */ */ */
4 | let x = 1
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/expected/comments.res.txt:
--------------------------------------------------------------------------------
1 | /* nested /* comments */ */
2 | 
3 | /* lvl 0 /* lvl 1 /* lvl 2 */ */ */
4 | let x = 1
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/expected/lor.res.txt:
--------------------------------------------------------------------------------
1 | let lower = ch => lor(32, ch)
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/expected/reasonFile.res.txt:
--------------------------------------------------------------------------------
1 | /* parses reason file */
2 | let () = {
3 |   let msg = "test"
4 |   msg->Js.log
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/expected/reasonInterfaceFile.resi.txt:
--------------------------------------------------------------------------------
1 | /* parse reason interface file */
2 | let x: int
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/lor.res:
--------------------------------------------------------------------------------
1 | let lower = ch => lor(32, ch)
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/reasonFile.res:
--------------------------------------------------------------------------------
1 | /* parses reason file */
2 | let () = {
3 |   let msg = "test"
4 |   msg->Js.log
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/reasonInterfaceFile.resi:
--------------------------------------------------------------------------------
1 | /* parse reason interface file */
2 | let x: int
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/other/reasonString.res:
--------------------------------------------------------------------------------
1 | let x = `foo \${bar`
2 | let x = `foo \`bar`
3 | let x = `foo \\bar`
4 | let x = `foo \\\${bar`
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/pattern/alias.res:
--------------------------------------------------------------------------------
1 | let x as y = 1
2 | let (x as y) as z = 1
3 | let (Foo | Bar) as x = 1
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/pattern/any.res:
--------------------------------------------------------------------------------
1 | let _ = 1
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/pattern/expected/alias.res.txt:
--------------------------------------------------------------------------------
1 | let x as y = 1
2 | let (x as y) as z = 1
3 | let (Foo | Bar) as x = 1
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/pattern/expected/any.res.txt:
--------------------------------------------------------------------------------
1 | let _ = 1
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/pattern/expected/extension.res.txt:
--------------------------------------------------------------------------------
1 | let %extensionPoint = 1
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/pattern/expected/lazy.res.txt:
--------------------------------------------------------------------------------
1 | let lazy x = 1
2 | let lazy (Foo | Bar) = 1
3 | let lazy (x as y) = 1
4 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/pattern/extension.res:
--------------------------------------------------------------------------------
1 | let %extensionPoint = 1
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/signature/expected/extension.resi.txt:
--------------------------------------------------------------------------------
1 | %%raw("eval(js)")
2 | 
3 | @attr
4 | %%extension(payload)
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/signature/expected/open.resi.txt:
--------------------------------------------------------------------------------
1 | open Belt
2 | 
3 | open! Belt
4 | 
5 | @attr
6 | open Belt
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/signature/expected/typext.resi.txt:
--------------------------------------------------------------------------------
1 | type Rgb.color +=
2 |   | Red
3 |   | Blue
4 |   | Green
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/signature/extension.resi:
--------------------------------------------------------------------------------
1 | %%raw("eval(js)")
2 | 
3 | @attr
4 | %%extension(payload)
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/signature/open.resi:
--------------------------------------------------------------------------------
1 | open Belt
2 | 
3 | open! Belt
4 | 
5 | @attr
6 | open Belt
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/signature/typext.resi:
--------------------------------------------------------------------------------
1 | type Rgb.color +=
2 |   | Red
3 |   | Blue
4 |   | Green
5 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/structure/expected/moduleBinding.res.txt:
--------------------------------------------------------------------------------
1 | module React = {
2 |   type t
3 | 
4 |   let render = () => Js.log("foo")
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/structure/expected/moduleTypeDeclaration.res.txt:
--------------------------------------------------------------------------------
1 | module type S = X
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/structure/expected/open.res.txt:
--------------------------------------------------------------------------------
1 | open Belt
2 | 
3 | @attr
4 | open Belt
5 | 
6 | open! Belt
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/structure/moduleBinding.res:
--------------------------------------------------------------------------------
1 | module React = {
2 |   type t
3 | 
4 |   let render = () => Js.log("foo")
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/structure/moduleTypeDeclaration.res:
--------------------------------------------------------------------------------
1 | module type S = X
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/structure/open.res:
--------------------------------------------------------------------------------
1 | open Belt
2 | 
3 | @attr
4 | open Belt
5 | 
6 | open! Belt
7 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/typeDef/constraint.res:
--------------------------------------------------------------------------------
1 | type t = Reducer
2 |   constraint 't = @attr ('state, 'action) => 'nextSubtree
3 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/typeDef/expected/constraint.res.txt:
--------------------------------------------------------------------------------
1 | type t = Reducer constraint 't = @attr ('state, 'action) => 'nextSubtree
2 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/typeDef/expected/private.res.txt:
--------------------------------------------------------------------------------
1 | type t1 = private {}
2 | 
3 | type t2 = private {x: int}
4 | 
5 | type t3 = private A | B
6 | 


--------------------------------------------------------------------------------
/tests/syntax_tests/data/printer/typeDef/private.res:
--------------------------------------------------------------------------------
1 | type t1 = private {}
2 | 
3 | type t2 = private {x: int}
4 | 
5 | type t3 = private A | B
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/DynamicImportModuleWithAlias.res:
--------------------------------------------------------------------------------
1 | let foo = async z => {
2 |   module Utils = await ModuleWithAlias
3 | 
4 |   Utils.x + z
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/EnvUnifiedOps.res:
--------------------------------------------------------------------------------
1 | module X = {
2 |   type t = int
3 |   let n: t => t = x => x + 1
4 | }
5 | 
6 | let z: X.t = 3
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/Equality_over_optimization.res:
--------------------------------------------------------------------------------
1 | let z = None == Some([Console.log("hello")])
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/ModuleWithAlias.res:
--------------------------------------------------------------------------------
1 | let x = 12
2 | 
3 | module VS = VariantSpreads
4 | 
5 | let y = 13
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/UncurriedPervasives.res:
--------------------------------------------------------------------------------
1 | @@uncurried
2 | let n: _ => unit = ignore // Check that we're pulling in uncurried pervasives
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/a_recursive_type.resi:
--------------------------------------------------------------------------------
1 | let loop: int
2 | let non_terminate: int
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/acyc/a0_a1.res:
--------------------------------------------------------------------------------
1 | let v = 3
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/acyc/a1_a2.res:
--------------------------------------------------------------------------------
1 | let v = A0_a1.v
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/acyc/a1_a2.resi:
--------------------------------------------------------------------------------
1 | let v: int
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/acyc/a2_a3.res:
--------------------------------------------------------------------------------
1 | let v = A1_a2.v
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/acyc/a3_a4.res:
--------------------------------------------------------------------------------
1 | include A2_a3
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/acyc/a4_a5.res:
--------------------------------------------------------------------------------
1 | include A3_a4
2 | 
3 | Js.log(v)
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/ari_regress_test.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/b.res:
--------------------------------------------------------------------------------
1 | type point = {x: float, y: float}
2 | 
3 | let f = point => {
4 |   let {x, y} = point
5 |   (x *. x +. y *. y) ** 2.
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/boolean_test.res:
--------------------------------------------------------------------------------
1 | open Mt
2 | 
3 | from_suites("boolean", list{("bool_equal", Test_bool_equal.assertions)})
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/complete_parmatch_test.res:
--------------------------------------------------------------------------------
1 | let f = x =>
2 |   switch x {
3 |   | 1 => 'a'
4 |   | 2 => 'b'
5 |   | 3 => 'c'
6 |   | _ => 'x'
7 |   }
8 | 


--------------------------------------------------------------------------------
/tests/tests/src/conditional/cond_a.res:
--------------------------------------------------------------------------------
1 | let u = assert(false)
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/conditional/cond_a_B.res:
--------------------------------------------------------------------------------
1 | module B = {
2 |   let value = 3
3 | }
4 | module A = {
5 |   let u = B.value
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/conditional/cond_a_C.res:
--------------------------------------------------------------------------------
1 | module C = {
2 |   let value = 3
3 | }
4 | module A = {
5 |   let u = C.value
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/conditional/cond_a_none.res:
--------------------------------------------------------------------------------
1 | module A = {
2 |   let u = assert(false)
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/conditional/cond_b.res:
--------------------------------------------------------------------------------
1 | let value = 3
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/conditional/cond_c.res:
--------------------------------------------------------------------------------
1 | let value = 3
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/config1_test.res:
--------------------------------------------------------------------------------
1 | @@config(no_export)
2 | 
3 | let a = 3
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/const_defs.res:
--------------------------------------------------------------------------------
1 | let v = true
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/const_defs_test.res:
--------------------------------------------------------------------------------
1 | let u = if Const_defs.v {
2 |   3
3 | } else {
4 |   4
5 | }
6 | 
7 | let f = () => invalid_arg("hi")
8 | 


--------------------------------------------------------------------------------
/tests/tests/src/cross_module_inline_test.res:
--------------------------------------------------------------------------------
1 | open Test_char
2 | let v = caml_is_printable('a')
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/debug_keep_test.mjs:
--------------------------------------------------------------------------------
1 | // Generated by ReScript, PLEASE EDIT WITH CARE
2 | 
3 | 
4 | debugger;
5 | 
6 | /*  Not a pure module */
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/debug_keep_test.res:
--------------------------------------------------------------------------------
1 | let () = %debugger
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/default_export_test.res:
--------------------------------------------------------------------------------
1 | let default = 3
2 | 
3 | let default = "xx"
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/demo_int_map.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/directives.res:
--------------------------------------------------------------------------------
1 | @@directive("first directive;")
2 | @@directive("second directive;")
3 | 
4 | let a = Belt.Array.forEach
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/effect.res:
--------------------------------------------------------------------------------
1 | let a = 3
2 | let b = 4
3 | let () = Js.log("hello")
4 | Js.log("hey")
5 | let c = 3
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/es6_export.res:
--------------------------------------------------------------------------------
1 | let default = 3
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/es6_import.res:
--------------------------------------------------------------------------------
1 | Js.log(Es6_export.default)
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/escape_esmodule.res:
--------------------------------------------------------------------------------
1 | let __esModule = false
2 | 
3 | let default = 4
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/esmodule_ref.mjs:
--------------------------------------------------------------------------------
1 | // Generated by ReScript, PLEASE EDIT WITH CARE
2 | 
3 | 
4 | console.log(false);
5 | 
6 | /*  Not a pure module */
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/esmodule_ref.res:
--------------------------------------------------------------------------------
1 | assert(!Escape_esmodule.__esModule)
2 | Js.log(Escape_esmodule.__esModule)
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/export_keyword.res:
--------------------------------------------------------------------------------
1 | let case = 3
2 | let window = 2
3 | 
4 | let \"switch" = 3
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/external_ppx2.res:
--------------------------------------------------------------------------------
1 | external f: (@as("\h\e\l\lo") _, int) => unit = "f"
2 | 
3 | let x = "\h\e\l\lo"
4 | let y = f(42)
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/function_directives.res:
--------------------------------------------------------------------------------
1 | let testFnWithDirective = @directive("'use memo'") (name: string) => "Hello " ++ name
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/functor_inst.res:
--------------------------------------------------------------------------------
1 | type t
2 | 
3 | let say = (x, y) => x + y
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/gentTypeReTest.res:
--------------------------------------------------------------------------------
1 | @genType.import("hh")
2 | external f: int => int = "f"
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/glob_test_add.res:
--------------------------------------------------------------------------------
1 | let add = (x, y) => x + y
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/glob_test_u.res:
--------------------------------------------------------------------------------
1 | let v = Glob_u.v
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/glob_u.res:
--------------------------------------------------------------------------------
1 | let v = 3
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/glob_x.res:
--------------------------------------------------------------------------------
1 | let v = 32
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_1240_missing_unbox.res:
--------------------------------------------------------------------------------
1 | let f = (x, y) => {
2 |   let (x, y) = (ref(x), ref(y))
3 |   (x.contents, y.contents)
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_1423_nav.res:
--------------------------------------------------------------------------------
1 | let busted = (~a1, ~a2, ()) =>
2 |   /* "hello" */
3 |   a1 ++ a2
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_1692_test.mjs:
--------------------------------------------------------------------------------
1 | // Generated by ReScript, PLEASE EDIT WITH CARE
2 | 
3 | 
4 | (f => 0)("");
5 | 
6 | /*  Not a pure module */
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_1717_test.res:
--------------------------------------------------------------------------------
1 | module rec A: {} = {}
2 | 
3 | module rec A0: {} = {}
4 | and A1: {} = {}
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_2352_test.res:
--------------------------------------------------------------------------------
1 | let f = x => x["hey"] = 22
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_2474.res:
--------------------------------------------------------------------------------
1 | @@warning("-a")
2 | let coordinates = 1
3 | 
4 | /* let 2 = coordinates */
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_2487.res:
--------------------------------------------------------------------------------
1 | module A = Belt.Array
2 | 
3 | let b = A.eq([1, 2, 3], [1, 2, 3], \"==")
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_2700_test.res:
--------------------------------------------------------------------------------
1 | let f = x => x == 3 || x == 4
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3852_alias.res:
--------------------------------------------------------------------------------
1 | module A = Gpr_3852_effect
2 | 
3 | /* It should generate a dummy JS file */
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3852_alias_reify.res:
--------------------------------------------------------------------------------
1 | module A = Gpr_3852_effect
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3852_alias_reify.resi:
--------------------------------------------------------------------------------
1 | module A: {
2 |   let v: int
3 | }
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3852_effect.res:
--------------------------------------------------------------------------------
1 | let v = 0
2 | let () = Js.log("hello")
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3865.res:
--------------------------------------------------------------------------------
1 | module F = Gpr_3865_foo
2 | module B = Gpr_3865_bar.Make(Gpr_3865_foo)
3 | 
4 | Js.log(F.return)
5 | Js.log(B.return)
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3865_bar.res:
--------------------------------------------------------------------------------
1 | module type S = {
2 |   let return: int
3 | }
4 | 
5 | module Make = (M: S) => {
6 |   include M
7 | }
8 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3865_foo.res:
--------------------------------------------------------------------------------
1 | let return = 5
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3895_test.res:
--------------------------------------------------------------------------------
1 | let f = re => {
2 |   let _ = re->Js.Re.exec_("banana")
3 |   3
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_3897_test.res:
--------------------------------------------------------------------------------
1 | module type S = {
2 |   let x: int
3 | }
4 | 
5 | module Make = (U: S) => {
6 |   include U
7 | }
8 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_4494_test.res:
--------------------------------------------------------------------------------
1 | /* disable it temporarily since it's TNTE */
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_4931_allow.res:
--------------------------------------------------------------------------------
1 | %%raw(`
2 | if(import.meta.hot) {
3 |   import.meta.hot.accept();
4 | }else{
5 |   console.log("ok")
6 | }`)
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_5753.mjs:
--------------------------------------------------------------------------------
1 | // Generated by ReScript, PLEASE EDIT WITH CARE
2 | 
3 | 
4 | console.log(/* '文' */25991);
5 | 
6 | /*  Not a pure module */
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/gpr_5753.res:
--------------------------------------------------------------------------------
1 | @@config({
2 |   flags: ["-w", "-8"],
3 | })
4 | 
5 | '文'->Js.log
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/hello.foo.mjs:
--------------------------------------------------------------------------------
1 | // Generated by ReScript, PLEASE EDIT WITH CARE
2 | 
3 | 
4 | console.log("Hello");
5 | 
6 | /*  Not a pure module */
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/hello.foo.res:
--------------------------------------------------------------------------------
1 | Js.log(__MODULE__)
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/hello_res.resi:
--------------------------------------------------------------------------------
1 | let a: int
2 | 
3 | let to: int
4 | let downto: int
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/import2.res:
--------------------------------------------------------------------------------
1 | let a = Js.import(Import_external.makeA)
2 | let b = Import_external.makeA
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/import_side_effect.res:
--------------------------------------------------------------------------------
1 | let a = Js.import(Side_effect2.a)
2 | 
3 | module M = await Side_effect
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/import_side_effect_free.res:
--------------------------------------------------------------------------------
1 | let a = await Js.import(Side_effect_free.a)
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/include_side_effect.res:
--------------------------------------------------------------------------------
1 | @@config({no_export: no_export})
2 | include Side_effect
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/incomplete_toplevel_test.res:
--------------------------------------------------------------------------------
1 | let f = () => {
2 |   Js.log("no inline")
3 |   (1, 2, 3)
4 | }
5 | 
6 | let (a, b, c) = f()
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/inline_edge_cases.resi:
--------------------------------------------------------------------------------
1 | let v: int
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/inline_map_test.resi:
--------------------------------------------------------------------------------
1 | /* val assertions : unit -> unit */
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/largest_int_flow.res:
--------------------------------------------------------------------------------
1 | @@warning("-107")
2 | let x = 949460645006
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/minimal_test.res:
--------------------------------------------------------------------------------
1 | let rec fake_y = list{2, 3}
2 | and fake_z = list{1, ...fake_y}
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/module_as_function.res:
--------------------------------------------------------------------------------
1 | @module external nightmare: {"show": bool} => int = "nightmare"
2 | 
3 | let v = nightmare({"show": true})
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/more_uncurry.res:
--------------------------------------------------------------------------------
1 | let f = (x, y, x_) =>
2 |   switch x_ {
3 |   | None => x + y
4 |   | Some(z) => x + y + z
5 |   }
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/noassert.res:
--------------------------------------------------------------------------------
1 | let f = () => assert(false)
2 | 
3 | let h = () => assert(3 > 2)
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/obj_type_test.res:
--------------------------------------------------------------------------------
1 | type x = {"x": int, "y": 'self => int} as 'self
2 | 
3 | let f = (u: x): x => u
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/ocaml_compat/Ocaml_Hashtbl.resi:
--------------------------------------------------------------------------------
1 | @deprecated("Use an alternative library. This will be removed in v13")
2 | let hash: 'a => int
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/poly_empty_array.res:
--------------------------------------------------------------------------------
1 | @@config({flags: ["-bs-unsafe-empty-array"]})
2 | let a = []
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/poly_variant_test.resi:
--------------------------------------------------------------------------------
1 | 
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/polymorphism_test.resi:
--------------------------------------------------------------------------------
1 | let map: ('a => 'b, list<'a>) => list<'b>
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/raw_arity.res:
--------------------------------------------------------------------------------
1 | let foo: int => int = %raw(`function add(x, y=5){ return x + y }`)
2 | 
3 | Console.log(foo(2))
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/rebind_module_test.res:
--------------------------------------------------------------------------------
1 | let x = (v: Rebind_module.b) =>
2 |   switch v {
3 |   | Rebind_module.AA => 0
4 |   | _ => 1
5 |   }
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/runtime_encoding_test.res:
--------------------------------------------------------------------------------
1 | let v = [0, 1]
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/side_effect.res:
--------------------------------------------------------------------------------
1 | Js.log(__MODULE__)
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/side_effect2.res:
--------------------------------------------------------------------------------
1 | let a = Belt.Array.map([1], x => x)
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/side_effect_free.res:
--------------------------------------------------------------------------------
1 | let a = 3
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/string_constant_compare.res:
--------------------------------------------------------------------------------
1 | let a1 = "'" == "'"
2 | let a2 = "'" != "'"
3 | let a3 = "'" == "\'"
4 | let a4 = "'" != "\'"
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/test2.res:
--------------------------------------------------------------------------------
1 | module U = {
2 |   module H = {
3 |     type t = string
4 |   }
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_array_append.res:
--------------------------------------------------------------------------------
1 | let const_v = Belt.Array.concat([1, 2], [3])
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_case_set.res:
--------------------------------------------------------------------------------
1 | let f = x => x["case"] = 3
2 | 
3 | let g = x => x["item"](3)
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_char.res:
--------------------------------------------------------------------------------
1 | let caml_is_printable = c => {
2 |   let code = Char.code(c)
3 |   code > 31 && code < 127
4 | }
5 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_common.res:
--------------------------------------------------------------------------------
1 | exception U(int)
2 | exception H
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_const_propogate.res:
--------------------------------------------------------------------------------
1 | let f = x =>
2 |   if 5 > 3 {
3 |     x
4 |   } else {
5 |     x + 1
6 |   }
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_cpp.res:
--------------------------------------------------------------------------------
1 | type t = int
2 | let f = (x: t, y) => Pervasives.compare(x, y)
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_dup_param.res:
--------------------------------------------------------------------------------
1 | let f = (x, x) => x
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_eq.res:
--------------------------------------------------------------------------------
1 | let f = (x, y) => x + y
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_export2.res:
--------------------------------------------------------------------------------
1 | let f = (x, y) => x + y
2 | 
3 | let f = (x, y) => x * y
4 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_incr_ref.res:
--------------------------------------------------------------------------------
1 | include (
2 |   {
3 |     let u = ref(0)
4 |     let v = incr(u)
5 |   }: {
6 |     let v: unit
7 |   }
8 | )
9 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_let.res:
--------------------------------------------------------------------------------
1 | {
2 |   let a = 3
3 |   Js.log(a)
4 | }
5 | let b = 3
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_match_exception.res:
--------------------------------------------------------------------------------
1 | let f = (g, x) =>
2 |   switch g(x) {
3 |   | y => y
4 |   | exception Not_found => 3
5 |   }
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_nested_let.res:
--------------------------------------------------------------------------------
1 | let v = {
2 |   let a = 3
3 |   let b = 32
4 |   let c = 33
5 |   a + b + c
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_nested_print.res:
--------------------------------------------------------------------------------
1 | let u = (x, x) => x + x
2 | let f = (g, x) => {
3 |   let u = g(x)
4 |   u + u
5 | }
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_nullary.res:
--------------------------------------------------------------------------------
1 | let f = _ => Js.log("hey")
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_obj.res:
--------------------------------------------------------------------------------
1 | let f = x => x["say_hi"]
2 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_order.res:
--------------------------------------------------------------------------------
1 | type t = int
2 | let compare = (x: int, y: int) => Pervasives.compare(x, y)
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_pervasives3.res:
--------------------------------------------------------------------------------
1 | module Pervasives = {
2 |   include Pervasives
3 |   include Belt.List
4 | }
5 | let v = Pervasives.\"@"
6 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_regex.res:
--------------------------------------------------------------------------------
1 | let v = /b/ig
2 | let r = /Bucklescript是一个程序语言/
3 | 
4 | /* Js.log(v);;
5 |  Js.log(r);; */
6 | 
7 | let c = v
8 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_small.res:
--------------------------------------------------------------------------------
1 | let fib = 3
2 | let u = fib
3 | 


--------------------------------------------------------------------------------
/tests/tests/src/test_unsafe_obj_ffi.resi:
--------------------------------------------------------------------------------
1 | let f: {.."height": int, "width": int} => int
2 | 


--------------------------------------------------------------------------------
/tests/tools_tests/src/ModC.res:
--------------------------------------------------------------------------------
1 | /**
2 | User Module
3 | */
4 | module User = {
5 |   let name = "ReScript"
6 | }
7 | 


--------------------------------------------------------------------------------
/tests/tools_tests/src/ModC.resi:
--------------------------------------------------------------------------------
1 | /**
2 | User Module from interface file
3 | */
4 | module User: {
5 |   let name: string
6 | }
7 | 


--------------------------------------------------------------------------------
/tools/bin/version.ml:
--------------------------------------------------------------------------------
1 | let version = "0.6.4"
2 | 


--------------------------------------------------------------------------------
/tools/src/dune:
--------------------------------------------------------------------------------
1 | (library
2 |  (name tools)
3 |  (flags
4 |   (-w "+6+26+27+32+33+39"))
5 |  (libraries analysis))
6 | 


--------------------------------------------------------------------------------