diff --git a/.github/workflows/esy.yml b/.github/workflows/esy.yml
index 9b88739c..3a4aae3d 100644
--- a/.github/workflows/esy.yml
+++ b/.github/workflows/esy.yml
@@ -16,7 +16,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, macos-latest, windows-latest]
+        os: [ubuntu-22.04, macos-latest, windows-latest]
 
     steps:
       - name: Setup node.js
@@ -29,7 +29,7 @@ jobs:
       # It also adds `shx` globally for cross-platform shell commands
       - name: Setup environment
         run: |
-          npm i -g esy
+          npm i -g esy@0.6.12
           npm i -g shx
 
       - name: Checkout project
diff --git a/.github/workflows/opam.yml b/.github/workflows/opam.yml
index 0e999a2f..57d7c249 100644
--- a/.github/workflows/opam.yml
+++ b/.github/workflows/opam.yml
@@ -16,7 +16,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, macos-latest, windows-latest]
+        os: [ubuntu-22.04, macos-latest, windows-latest]
         ocaml-compiler: [4.12.1, 4.13.1, 4.14.1]
 
     steps:
diff --git a/binaryen.opam b/binaryen.opam
index 17081300..702ed4f7 100644
--- a/binaryen.opam
+++ b/binaryen.opam
@@ -16,5 +16,5 @@ depends: [
   "dune" {>= "3.0.0"}
   "dune-configurator" {>= "3.0.0"}
   "js_of_ocaml-compiler" {>= "4.1.0" < "6.0.0"}
-  "libbinaryen" {>= "114.0.0" < "115.0.0"}
+  "libbinaryen" {>= "115.0.0" < "116.0.0"}
 ]
diff --git a/esy.lock/index.json b/esy.lock/index.json
index d4434021..f403eb6c 100644
--- a/esy.lock/index.json
+++ b/esy.lock/index.json
@@ -1,5 +1,5 @@
 {
-  "checksum": "2aceb017bd41774397cd5824bc330c3f",
+  "checksum": "ac20787e284ebde3a57789f38a11e230",
   "root": "@grain/binaryen.ml@link-dev:./package.json",
   "node": {
     "ocaml@4.14.1000@d41d8cd9": {
@@ -16,47 +16,46 @@
       "dependencies": [],
       "devDependencies": []
     },
-    "@opam/yojson@opam:2.1.1@ad5e299c": {
-      "id": "@opam/yojson@opam:2.1.1@ad5e299c",
+    "@opam/yojson@opam:2.2.2@0786d153": {
+      "id": "@opam/yojson@opam:2.2.2@0786d153",
       "name": "@opam/yojson",
-      "version": "opam:2.1.1",
+      "version": "opam:2.2.2",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/d5/d58183207b198dc065866239066e074c34f9e139c0d9c4175a38809790e88173#sha256:d58183207b198dc065866239066e074c34f9e139c0d9c4175a38809790e88173",
-          "archive:https://github.com/ocaml-community/yojson/releases/download/2.1.1/yojson-2.1.1.tbz#sha256:d58183207b198dc065866239066e074c34f9e139c0d9c4175a38809790e88173"
+          "archive:https://opam.ocaml.org/cache/sha256/9a/9abfad8c9a79d4723ad2f6448e669c1e68dbfc87cc54a1b7c064b0c90912c595#sha256:9abfad8c9a79d4723ad2f6448e669c1e68dbfc87cc54a1b7c064b0c90912c595",
+          "archive:https://github.com/ocaml-community/yojson/releases/download/2.2.2/yojson-2.2.2.tbz#sha256:9abfad8c9a79d4723ad2f6448e669c1e68dbfc87cc54a1b7c064b0c90912c595"
         ],
         "opam": {
           "name": "yojson",
-          "version": "2.1.1",
-          "path": "esy.lock/opam/yojson.2.1.1"
+          "version": "2.2.2",
+          "path": "esy.lock/opam/yojson.2.2.2"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d",
-        "@opam/dune@opam:3.11.1@ba2e0e6a", "@opam/cppo@opam:1.6.9@db929a12",
-        "@esy-ocaml/substs@0.0.1@d41d8cd9"
+        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@5ed5af70",
+        "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@5ed5af70",
         "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/xdg@opam:3.11.1@1e207b0b": {
-      "id": "@opam/xdg@opam:3.11.1@1e207b0b",
+    "@opam/xdg@opam:3.13.1@c5b5e65a": {
+      "id": "@opam/xdg@opam:3.13.1@c5b5e65a",
       "name": "@opam/xdg",
-      "version": "opam:3.11.1",
+      "version": "opam:3.13.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/86/866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71",
-          "archive:https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
+          "archive:https://opam.ocaml.org/cache/sha256/2f/2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916",
+          "archive:https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
         ],
         "opam": {
           "name": "xdg",
-          "version": "3.11.1",
-          "path": "esy.lock/opam/xdg.3.11.1"
+          "version": "3.13.1",
+          "path": "esy.lock/opam/xdg.3.13.1"
         }
       },
       "overrides": [],
@@ -68,8 +67,8 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/uutf@opam:1.0.3@47c95a18": {
-      "id": "@opam/uutf@opam:1.0.3@47c95a18",
+    "@opam/uutf@opam:1.0.3@3527936b": {
+      "id": "@opam/uutf@opam:1.0.3@3527936b",
       "name": "@opam/uutf",
       "version": "opam:1.0.3",
       "source": {
@@ -86,71 +85,71 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@7ee47d76",
-        "@opam/ocamlfind@opam:1.9.6@da5169c7",
-        "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@e59fb83d",
+        "@opam/ocamlfind@opam:1.9.8@c73376ed",
+        "@opam/ocamlbuild@opam:0.16.1@b3fc8209",
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ]
     },
-    "@opam/uuseg@opam:15.1.0@af4a84a3": {
-      "id": "@opam/uuseg@opam:15.1.0@af4a84a3",
+    "@opam/uuseg@opam:16.0.0@bd0df457": {
+      "id": "@opam/uuseg@opam:16.0.0@bd0df457",
       "name": "@opam/uuseg",
-      "version": "opam:15.1.0",
+      "version": "opam:16.0.0",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha512/1e/1e9460dc5a856c985d40c61fd1560bdfdb8bbaf8d7430405814589b47d4a7f7869658d1e3198c7a9132412e9b4b85402ceb4bda5040da426b69e9aef4222a23a#sha512:1e9460dc5a856c985d40c61fd1560bdfdb8bbaf8d7430405814589b47d4a7f7869658d1e3198c7a9132412e9b4b85402ceb4bda5040da426b69e9aef4222a23a",
-          "archive:https://erratique.ch/software/uuseg/releases/uuseg-15.1.0.tbz#sha512:1e9460dc5a856c985d40c61fd1560bdfdb8bbaf8d7430405814589b47d4a7f7869658d1e3198c7a9132412e9b4b85402ceb4bda5040da426b69e9aef4222a23a"
+          "archive:https://opam.ocaml.org/cache/sha512/35/355139aee2a72baddf3d811e522948456147546ee946b6eca20f57711865770d4b8d32ea01a7338b8e6cdedb4423ee65cee387704bb9c0c057bcbd65012679b8#sha512:355139aee2a72baddf3d811e522948456147546ee946b6eca20f57711865770d4b8d32ea01a7338b8e6cdedb4423ee65cee387704bb9c0c057bcbd65012679b8",
+          "archive:https://erratique.ch/software/uuseg/releases/uuseg-16.0.0.tbz#sha512:355139aee2a72baddf3d811e522948456147546ee946b6eca20f57711865770d4b8d32ea01a7338b8e6cdedb4423ee65cee387704bb9c0c057bcbd65012679b8"
         ],
         "opam": {
           "name": "uuseg",
-          "version": "15.1.0",
-          "path": "esy.lock/opam/uuseg.15.1.0"
+          "version": "16.0.0",
+          "path": "esy.lock/opam/uuseg.16.0.0"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/uutf@opam:1.0.3@47c95a18",
-        "@opam/uucp@opam:15.1.0@ef3e0a4e", "@opam/topkg@opam:1.0.7@7ee47d76",
-        "@opam/ocamlfind@opam:1.9.6@da5169c7",
-        "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/uutf@opam:1.0.3@3527936b",
+        "@opam/uucp@opam:16.0.0@ded5dcba", "@opam/topkg@opam:1.0.7@e59fb83d",
+        "@opam/ocamlfind@opam:1.9.8@c73376ed",
+        "@opam/ocamlbuild@opam:0.16.1@b3fc8209",
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/uucp@opam:15.1.0@ef3e0a4e"
+        "ocaml@4.14.1000@d41d8cd9", "@opam/uucp@opam:16.0.0@ded5dcba"
       ]
     },
-    "@opam/uucp@opam:15.1.0@ef3e0a4e": {
-      "id": "@opam/uucp@opam:15.1.0@ef3e0a4e",
+    "@opam/uucp@opam:16.0.0@ded5dcba": {
+      "id": "@opam/uucp@opam:16.0.0@ded5dcba",
       "name": "@opam/uucp",
-      "version": "opam:15.1.0",
+      "version": "opam:16.0.0",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha512/99/998f94fadb72357b15a3042a3d11c31b3e16f281822673f2defdd515cd1394d55de1817628be8bd5c030175f9e62c53630d4139a1c0253800f9fb898b0f11364#sha512:998f94fadb72357b15a3042a3d11c31b3e16f281822673f2defdd515cd1394d55de1817628be8bd5c030175f9e62c53630d4139a1c0253800f9fb898b0f11364",
-          "archive:https://erratique.ch/software/uucp/releases/uucp-15.1.0.tbz#sha512:998f94fadb72357b15a3042a3d11c31b3e16f281822673f2defdd515cd1394d55de1817628be8bd5c030175f9e62c53630d4139a1c0253800f9fb898b0f11364"
+          "archive:https://opam.ocaml.org/cache/sha512/5c/5c06d8cadb2b011b1e4ac52e14732044f6ab8e9c11e1184950ff8629b26bd173f1264247623a635b8aa4033e287bfe42d709994f19a3d79f7cbfd20158aa4992#sha512:5c06d8cadb2b011b1e4ac52e14732044f6ab8e9c11e1184950ff8629b26bd173f1264247623a635b8aa4033e287bfe42d709994f19a3d79f7cbfd20158aa4992",
+          "archive:https://erratique.ch/software/uucp/releases/uucp-16.0.0.tbz#sha512:5c06d8cadb2b011b1e4ac52e14732044f6ab8e9c11e1184950ff8629b26bd173f1264247623a635b8aa4033e287bfe42d709994f19a3d79f7cbfd20158aa4992"
         ],
         "opam": {
           "name": "uucp",
-          "version": "15.1.0",
-          "path": "esy.lock/opam/uucp.15.1.0"
+          "version": "16.0.0",
+          "path": "esy.lock/opam/uucp.16.0.0"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@7ee47d76",
-        "@opam/ocamlfind@opam:1.9.6@da5169c7",
-        "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@e59fb83d",
+        "@opam/ocamlfind@opam:1.9.8@c73376ed",
+        "@opam/ocamlbuild@opam:0.16.1@b3fc8209",
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ]
     },
-    "@opam/topkg@opam:1.0.7@7ee47d76": {
-      "id": "@opam/topkg@opam:1.0.7@7ee47d76",
+    "@opam/topkg@opam:1.0.7@e59fb83d": {
+      "id": "@opam/topkg@opam:1.0.7@e59fb83d",
       "name": "@opam/topkg",
       "version": "opam:1.0.7",
       "source": {
@@ -167,44 +166,43 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.6@da5169c7",
-        "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.8@c73376ed",
+        "@opam/ocamlbuild@opam:0.16.1@b3fc8209",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9",
-        "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d"
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlbuild@opam:0.16.1@b3fc8209"
       ]
     },
-    "@opam/stdune@opam:3.11.1@9a840882": {
-      "id": "@opam/stdune@opam:3.11.1@9a840882",
+    "@opam/stdune@opam:3.13.1@229d4fd8": {
+      "id": "@opam/stdune@opam:3.13.1@229d4fd8",
       "name": "@opam/stdune",
-      "version": "opam:3.11.1",
+      "version": "opam:3.13.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/86/866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71",
-          "archive:https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
+          "archive:https://opam.ocaml.org/cache/sha256/2f/2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916",
+          "archive:https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
         ],
         "opam": {
           "name": "stdune",
-          "version": "3.11.1",
-          "path": "esy.lock/opam/stdune.3.11.1"
+          "version": "3.13.1",
+          "path": "esy.lock/opam/stdune.3.13.1"
         }
       },
       "overrides": [],
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/pp@opam:1.2.0@16430027",
-        "@opam/ordering@opam:3.11.1@92c57daa",
-        "@opam/dyn@opam:3.11.1@d3c74846", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "@opam/ordering@opam:3.13.1@af68547e",
+        "@opam/dyn@opam:3.13.1@aeca9f35", "@opam/dune@opam:3.11.1@ba2e0e6a",
         "@opam/csexp@opam:1.5.2@46614bf4",
         "@opam/base-unix@opam:base@87d0b2eb",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/pp@opam:1.2.0@16430027",
-        "@opam/ordering@opam:3.11.1@92c57daa",
-        "@opam/dyn@opam:3.11.1@d3c74846", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "@opam/ordering@opam:3.13.1@af68547e",
+        "@opam/dyn@opam:3.13.1@aeca9f35", "@opam/dune@opam:3.11.1@ba2e0e6a",
         "@opam/csexp@opam:1.5.2@46614bf4",
         "@opam/base-unix@opam:base@87d0b2eb"
       ]
@@ -253,28 +251,28 @@
       "overrides": [],
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/base@opam:v0.16.3@de1ba42e",
+        "@opam/base@opam:v0.16.3@162b7c08",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/base@opam:v0.16.3@de1ba42e"
+        "@opam/base@opam:v0.16.3@162b7c08"
       ]
     },
-    "@opam/spawn@opam:v0.15.1@85e9d6f1": {
-      "id": "@opam/spawn@opam:v0.15.1@85e9d6f1",
+    "@opam/spawn@opam:v0.17.0@d0f69739": {
+      "id": "@opam/spawn@opam:v0.17.0@d0f69739",
       "name": "@opam/spawn",
-      "version": "opam:v0.15.1",
+      "version": "opam:v0.17.0",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/9a/9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50#sha256:9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50",
-          "archive:https://github.com/janestreet/spawn/archive/v0.15.1.tar.gz#sha256:9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50"
+          "archive:https://opam.ocaml.org/cache/sha256/33/33fbb5cd4c3387a6829095cfa73d5fc2eff572be61647e6052010bfbd0c2df49#sha256:33fbb5cd4c3387a6829095cfa73d5fc2eff572be61647e6052010bfbd0c2df49",
+          "archive:https://github.com/janestreet/spawn/releases/download/v0.17.0/spawn-v0.17.0.tbz#sha256:33fbb5cd4c3387a6829095cfa73d5fc2eff572be61647e6052010bfbd0c2df49"
         ],
         "opam": {
           "name": "spawn",
-          "version": "v0.15.1",
-          "path": "esy.lock/opam/spawn.v0.15.1"
+          "version": "v0.17.0",
+          "path": "esy.lock/opam/spawn.v0.17.0"
         }
       },
       "overrides": [],
@@ -311,8 +309,8 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/seq@opam:base@d8d7de1d": {
-      "id": "@opam/seq@opam:base@d8d7de1d",
+    "@opam/seq@opam:base@5ed5af70": {
+      "id": "@opam/seq@opam:base@5ed5af70",
       "name": "@opam/seq",
       "version": "opam:base",
       "source": {
@@ -328,44 +326,60 @@
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
-      "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ]
+      "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ],
+      "extraSources": [
+        {
+          "checksum":
+            "sha256:e95062b4d0519ef8335c02f7d0f1952d11b814c7ab7e6d566a206116162fa2be",
+          "url":
+            "https://raw.githubusercontent.com/ocaml/opam-source-archives/main/patches/seq/META.seq",
+          "relativePath": "META.seq"
+        },
+        {
+          "checksum":
+            "sha256:fff926c2c4d5a82b6c94c60c4c35eb06e3d39975893ebe6b1f0e6557cbe34904",
+          "url":
+            "https://raw.githubusercontent.com/ocaml/opam-source-archives/main/patches/seq/seq.install",
+          "relativePath": "seq.install"
+        }
+      ]
     },
-    "@opam/sedlex@opam:3.2@eab3a2e0": {
-      "id": "@opam/sedlex@opam:3.2@eab3a2e0",
+    "@opam/sedlex@opam:3.3@8168b930": {
+      "id": "@opam/sedlex@opam:3.3@8168b930",
       "name": "@opam/sedlex",
-      "version": "opam:3.2",
+      "version": "opam:3.3",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/b6/b67eec3a80a7fed8e6c91e47260b0843#md5:b67eec3a80a7fed8e6c91e47260b0843",
-          "archive:https://github.com/ocaml-community/sedlex/archive/refs/tags/v3.2.tar.gz#md5:b67eec3a80a7fed8e6c91e47260b0843"
+          "archive:https://opam.ocaml.org/cache/md5/46/4603d572e24f3515fe7e7d0b665bdda6#md5:4603d572e24f3515fe7e7d0b665bdda6",
+          "archive:https://github.com/ocaml-community/sedlex/archive/refs/tags/v3.3.tar.gz#md5:4603d572e24f3515fe7e7d0b665bdda6"
         ],
         "opam": {
           "name": "sedlex",
-          "version": "3.2",
-          "path": "esy.lock/opam/sedlex.3.2"
+          "version": "3.3",
+          "path": "esy.lock/opam/sedlex.3.3"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/ppxlib@opam:0.29.1@a8bb9506",
-        "@opam/gen@opam:1.1@059b2731", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ppxlib@opam:0.33.0@83023edc",
+        "@opam/gen@opam:1.1@55327887", "@opam/dune@opam:3.11.1@ba2e0e6a",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/ppxlib@opam:0.29.1@a8bb9506",
-        "@opam/gen@opam:1.1@059b2731", "@opam/dune@opam:3.11.1@ba2e0e6a"
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ppxlib@opam:0.33.0@83023edc",
+        "@opam/gen@opam:1.1@55327887", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/result@opam:1.5@1c6a6533": {
-      "id": "@opam/result@opam:1.5@1c6a6533",
+    "@opam/result@opam:1.5@5a755845": {
+      "id": "@opam/result@opam:1.5@5a755845",
       "name": "@opam/result",
       "version": "opam:1.5",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/1b/1b82dec78849680b49ae9a8a365b831b#md5:1b82dec78849680b49ae9a8a365b831b",
-          "archive:https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz#md5:1b82dec78849680b49ae9a8a365b831b"
+          "archive:https://opam.ocaml.org/cache/sha256/7c/7c3a5e238558f4c1a4f5acca816bc705a0e12f68dc0005c61ddbf2e6cab8ee32#sha256:7c3a5e238558f4c1a4f5acca816bc705a0e12f68dc0005c61ddbf2e6cab8ee32",
+          "archive:https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz#sha256:7c3a5e238558f4c1a4f5acca816bc705a0e12f68dc0005c61ddbf2e6cab8ee32"
         ],
         "opam": {
           "name": "result",
@@ -382,61 +396,61 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/re@opam:1.11.0@87deb463": {
-      "id": "@opam/re@opam:1.11.0@87deb463",
+    "@opam/re@opam:1.12.0@42f7a5b9": {
+      "id": "@opam/re@opam:1.12.0@42f7a5b9",
       "name": "@opam/re",
-      "version": "opam:1.11.0",
+      "version": "opam:1.12.0",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/01/01fc244780c0f6be72ae796b1fb750f367de18624fd75d07ee79782ed6df8d4f#sha256:01fc244780c0f6be72ae796b1fb750f367de18624fd75d07ee79782ed6df8d4f",
-          "archive:https://github.com/ocaml/ocaml-re/releases/download/1.11.0/re-1.11.0.tbz#sha256:01fc244780c0f6be72ae796b1fb750f367de18624fd75d07ee79782ed6df8d4f"
+          "archive:https://opam.ocaml.org/cache/sha256/a0/a01f2bf22f72c2f4ababd8d3e7635e35c1bf6bc5a41ad6d5a007454ddabad1d4#sha256:a01f2bf22f72c2f4ababd8d3e7635e35c1bf6bc5a41ad6d5a007454ddabad1d4",
+          "archive:https://github.com/ocaml/ocaml-re/releases/download/1.12.0/re-1.12.0.tbz#sha256:a01f2bf22f72c2f4ababd8d3e7635e35c1bf6bc5a41ad6d5a007454ddabad1d4"
         ],
         "opam": {
           "name": "re",
-          "version": "1.11.0",
-          "path": "esy.lock/opam/re.1.11.0"
+          "version": "1.12.0",
+          "path": "esy.lock/opam/re.1.12.0"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@5ed5af70",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@5ed5af70",
         "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/ppxlib@opam:0.29.1@a8bb9506": {
-      "id": "@opam/ppxlib@opam:0.29.1@a8bb9506",
+    "@opam/ppxlib@opam:0.33.0@83023edc": {
+      "id": "@opam/ppxlib@opam:0.33.0@83023edc",
       "name": "@opam/ppxlib",
-      "version": "opam:0.29.1",
+      "version": "opam:0.33.0",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/c8/c8ea8c8770414fdba6612e7f2d814b21a493daa974ea862a90c8e6c766e5dd79#sha256:c8ea8c8770414fdba6612e7f2d814b21a493daa974ea862a90c8e6c766e5dd79",
-          "archive:https://github.com/ocaml-ppx/ppxlib/releases/download/0.29.1/ppxlib-0.29.1.tbz#sha256:c8ea8c8770414fdba6612e7f2d814b21a493daa974ea862a90c8e6c766e5dd79"
+          "archive:https://opam.ocaml.org/cache/sha256/ff/ffa44ef551f23b75e21dbd698a30310431381aaf140b9fe4b81c2e70a2d2c63a#sha256:ffa44ef551f23b75e21dbd698a30310431381aaf140b9fe4b81c2e70a2d2c63a",
+          "archive:https://github.com/ocaml-ppx/ppxlib/releases/download/0.33.0/ppxlib-0.33.0.tbz#sha256:ffa44ef551f23b75e21dbd698a30310431381aaf140b9fe4b81c2e70a2d2c63a"
         ],
         "opam": {
           "name": "ppxlib",
-          "version": "0.29.1",
-          "path": "esy.lock/opam/ppxlib.0.29.1"
+          "version": "0.33.0",
+          "path": "esy.lock/opam/ppxlib.0.33.0"
         }
       },
       "overrides": [],
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/stdlib-shims@opam:0.3.0@72c7bc98",
         "@opam/sexplib0@opam:v0.16.0@c0ffad0c",
-        "@opam/ppx_derivers@opam:1.2.1@e2cbad12",
-        "@opam/ocaml-compiler-libs@opam:v0.12.4@41979882",
+        "@opam/ppx_derivers@opam:1.2.1@d78727cd",
+        "@opam/ocaml-compiler-libs@opam:v0.12.4@57a85ad1",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/stdlib-shims@opam:0.3.0@72c7bc98",
         "@opam/sexplib0@opam:v0.16.0@c0ffad0c",
-        "@opam/ppx_derivers@opam:1.2.1@e2cbad12",
-        "@opam/ocaml-compiler-libs@opam:v0.12.4@41979882",
+        "@opam/ppx_derivers@opam:1.2.1@d78727cd",
+        "@opam/ocaml-compiler-libs@opam:v0.12.4@57a85ad1",
         "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
@@ -458,23 +472,23 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.1@ad5e299c",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.2.2@0786d153",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.1@ad5e299c",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.2.2@0786d153",
         "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/ppx_derivers@opam:1.2.1@e2cbad12": {
-      "id": "@opam/ppx_derivers@opam:1.2.1@e2cbad12",
+    "@opam/ppx_derivers@opam:1.2.1@d78727cd": {
+      "id": "@opam/ppx_derivers@opam:1.2.1@d78727cd",
       "name": "@opam/ppx_derivers",
       "version": "opam:1.2.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/5d/5dc2bf130c1db3c731fe0fffc5648b41#md5:5dc2bf130c1db3c731fe0fffc5648b41",
-          "archive:https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz#md5:5dc2bf130c1db3c731fe0fffc5648b41"
+          "archive:https://opam.ocaml.org/cache/sha256/b6/b6595ee187dea792b31fc54a0e1524ab1e48bc6068d3066c45215a138cc73b95#sha256:b6595ee187dea792b31fc54a0e1524ab1e48bc6068d3066c45215a138cc73b95",
+          "archive:https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz#sha256:b6595ee187dea792b31fc54a0e1524ab1e48bc6068d3066c45215a138cc73b95"
         ],
         "opam": {
           "name": "ppx_derivers",
@@ -516,20 +530,20 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/ordering@opam:3.11.1@92c57daa": {
-      "id": "@opam/ordering@opam:3.11.1@92c57daa",
+    "@opam/ordering@opam:3.13.1@af68547e": {
+      "id": "@opam/ordering@opam:3.13.1@af68547e",
       "name": "@opam/ordering",
-      "version": "opam:3.11.1",
+      "version": "opam:3.13.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/86/866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71",
-          "archive:https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
+          "archive:https://opam.ocaml.org/cache/sha256/2f/2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916",
+          "archive:https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
         ],
         "opam": {
           "name": "ordering",
-          "version": "3.11.1",
-          "path": "esy.lock/opam/ordering.3.11.1"
+          "version": "3.13.1",
+          "path": "esy.lock/opam/ordering.3.13.1"
         }
       },
       "overrides": [],
@@ -541,32 +555,32 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/omd@opam:1.3.2@511d53d2": {
-      "id": "@opam/omd@opam:1.3.2@511d53d2",
+    "@opam/omd@opam:1.3.1@f61efb81": {
+      "id": "@opam/omd@opam:1.3.1@f61efb81",
       "name": "@opam/omd",
-      "version": "opam:1.3.2",
+      "version": "opam:1.3.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/60/6023e1642631f08f678eb5725820879ed7bb5a3ffee777cdedebc28c1f85fadb#sha256:6023e1642631f08f678eb5725820879ed7bb5a3ffee777cdedebc28c1f85fadb",
-          "archive:https://github.com/ocaml/omd/releases/download/1.3.2/omd-1.3.2.tbz#sha256:6023e1642631f08f678eb5725820879ed7bb5a3ffee777cdedebc28c1f85fadb"
+          "archive:https://opam.ocaml.org/cache/sha256/8a/8aef085a98c38a20483f953f7ba5fe15d712290b095624af3d7999d4ef7fede9#sha256:8aef085a98c38a20483f953f7ba5fe15d712290b095624af3d7999d4ef7fede9",
+          "archive:https://github.com/Chris00/omd/releases/download/1.3.1/omd-1.3.1.tar.gz#sha256:8aef085a98c38a20483f953f7ba5fe15d712290b095624af3d7999d4ef7fede9"
         ],
         "opam": {
           "name": "omd",
-          "version": "1.3.2",
-          "path": "esy.lock/opam/omd.1.3.2"
+          "version": "1.3.1",
+          "path": "esy.lock/opam/omd.1.3.1"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.8@c73376ed",
+        "@opam/ocamlbuild@opam:0.16.1@b3fc8209",
         "@opam/base-bytes@opam:base@19d0c2ff",
         "@opam/base-bigarray@opam:base@b03491b0",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/base-bytes@opam:base@19d0c2ff",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/base-bytes@opam:base@19d0c2ff",
         "@opam/base-bigarray@opam:base@b03491b0"
       ]
     },
@@ -588,28 +602,28 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/result@opam:1.5@1c6a6533",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/result@opam:1.5@5a755845",
         "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/camlp-streams@opam:5.0.1@daaa0f94",
-        "@opam/astring@opam:0.8.5@1300cee8",
+        "@opam/camlp-streams@opam:5.0.1@8e96208c",
+        "@opam/astring@opam:0.8.5@9975798d",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/result@opam:1.5@1c6a6533",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/result@opam:1.5@5a755845",
         "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/camlp-streams@opam:5.0.1@daaa0f94",
-        "@opam/astring@opam:0.8.5@1300cee8"
+        "@opam/camlp-streams@opam:5.0.1@8e96208c",
+        "@opam/astring@opam:0.8.5@9975798d"
       ]
     },
-    "@opam/octavius@opam:1.2.2@2205cc65": {
-      "id": "@opam/octavius@opam:1.2.2@2205cc65",
+    "@opam/octavius@opam:1.2.2@558886f0": {
+      "id": "@opam/octavius@opam:1.2.2@558886f0",
       "name": "@opam/octavius",
       "version": "opam:1.2.2",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/72/72f9e1d996e6c5089fc513cc9218607b#md5:72f9e1d996e6c5089fc513cc9218607b",
-          "archive:https://github.com/ocaml-doc/octavius/archive/v1.2.2.tar.gz#md5:72f9e1d996e6c5089fc513cc9218607b"
+          "archive:https://opam.ocaml.org/cache/sha256/ea/eac9104ce0316b69da9c44b9c477700fe0b52a888c89ce4bdf1d2b782a73e0ad#sha256:eac9104ce0316b69da9c44b9c477700fe0b52a888c89ce4bdf1d2b782a73e0ad",
+          "archive:https://github.com/ocaml-doc/octavius/archive/v1.2.2.tar.gz#sha256:eac9104ce0316b69da9c44b9c477700fe0b52a888c89ce4bdf1d2b782a73e0ad"
         ],
         "opam": {
           "name": "octavius",
@@ -644,33 +658,33 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.6@da5169c7",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.8@c73376ed",
         "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c",
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f",
         "@opam/base-bytes@opam:base@19d0c2ff",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.6@da5169c7",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.8@c73376ed",
         "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c",
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f",
         "@opam/base-bytes@opam:base@19d0c2ff"
       ]
     },
-    "@opam/ocamlformat-rpc-lib@opam:0.26.1@1f552fda": {
-      "id": "@opam/ocamlformat-rpc-lib@opam:0.26.1@1f552fda",
+    "@opam/ocamlformat-rpc-lib@opam:0.27.0@b911ff6f": {
+      "id": "@opam/ocamlformat-rpc-lib@opam:0.27.0@b911ff6f",
       "name": "@opam/ocamlformat-rpc-lib",
-      "version": "opam:0.26.1",
+      "version": "opam:0.27.0",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/da/da006e427f15b9ec612fb808d446599bd9b7c3ee25abeb3d555747a70d74c6d7#sha256:da006e427f15b9ec612fb808d446599bd9b7c3ee25abeb3d555747a70d74c6d7",
-          "archive:https://github.com/ocaml-ppx/ocamlformat/releases/download/0.26.1/ocamlformat-0.26.1.tbz#sha256:da006e427f15b9ec612fb808d446599bd9b7c3ee25abeb3d555747a70d74c6d7"
+          "archive:https://opam.ocaml.org/cache/sha256/dd/ddbf484c076d08f99400ee84b790ec231f5c8fcbd5d3324a6400d5388e846d15#sha256:ddbf484c076d08f99400ee84b790ec231f5c8fcbd5d3324a6400d5388e846d15",
+          "archive:https://github.com/ocaml-ppx/ocamlformat/releases/download/0.27.0/ocamlformat-0.27.0.tbz#sha256:ddbf484c076d08f99400ee84b790ec231f5c8fcbd5d3324a6400d5388e846d15"
         ],
         "opam": {
           "name": "ocamlformat-rpc-lib",
-          "version": "0.26.1",
-          "path": "esy.lock/opam/ocamlformat-rpc-lib.0.26.1"
+          "version": "0.27.0",
+          "path": "esy.lock/opam/ocamlformat-rpc-lib.0.27.0"
         }
       },
       "overrides": [],
@@ -683,8 +697,8 @@
         "@opam/csexp@opam:1.5.2@46614bf4"
       ]
     },
-    "@opam/ocamlformat@opam:0.24.1@d7f4254d": {
-      "id": "@opam/ocamlformat@opam:0.24.1@d7f4254d",
+    "@opam/ocamlformat@opam:0.24.1@01d7df0f": {
+      "id": "@opam/ocamlformat@opam:0.24.1@01d7df0f",
       "name": "@opam/ocamlformat",
       "version": "opam:0.24.1",
       "source": {
@@ -701,63 +715,63 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/uutf@opam:1.0.3@47c95a18",
-        "@opam/uuseg@opam:15.1.0@af4a84a3",
-        "@opam/stdio@opam:v0.16.0@a75c1ca1", "@opam/re@opam:1.11.0@87deb463",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/uutf@opam:1.0.3@3527936b",
+        "@opam/uuseg@opam:16.0.0@bd0df457",
+        "@opam/stdio@opam:v0.16.0@a75c1ca1", "@opam/re@opam:1.12.0@42f7a5b9",
         "@opam/odoc-parser@opam:2.0.0@a08011a0",
         "@opam/ocp-indent@opam:1.7.0@2da3c6e5",
         "@opam/ocaml-version@opam:3.5.0@6bef55f5",
-        "@opam/menhirSdk@opam:20230608@36f21a74",
-        "@opam/menhirLib@opam:20230608@cf13bc0d",
-        "@opam/menhir@opam:20230608@c0081728",
-        "@opam/fpath@opam:0.7.3@674d8125",
+        "@opam/menhirSdk@opam:20240715@9d924351",
+        "@opam/menhirLib@opam:20240715@3e1794bd",
+        "@opam/menhir@opam:20240715@454ed5d1",
+        "@opam/fpath@opam:0.7.3@d817a3b5",
         "@opam/fix@opam:20230505@941a65ff",
-        "@opam/either@opam:1.0.0@be5a1416",
-        "@opam/dune-build-info@opam:3.11.1@0dfbdab2",
+        "@opam/either@opam:1.0.0@378fa7c4",
+        "@opam/dune-build-info@opam:3.13.1@c2146656",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@opam/csexp@opam:1.5.2@46614bf4",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c",
-        "@opam/base@opam:v0.16.3@de1ba42e",
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f",
+        "@opam/base@opam:v0.16.3@162b7c08",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/uutf@opam:1.0.3@47c95a18",
-        "@opam/uuseg@opam:15.1.0@af4a84a3",
-        "@opam/stdio@opam:v0.16.0@a75c1ca1", "@opam/re@opam:1.11.0@87deb463",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/uutf@opam:1.0.3@3527936b",
+        "@opam/uuseg@opam:16.0.0@bd0df457",
+        "@opam/stdio@opam:v0.16.0@a75c1ca1", "@opam/re@opam:1.12.0@42f7a5b9",
         "@opam/odoc-parser@opam:2.0.0@a08011a0",
         "@opam/ocp-indent@opam:1.7.0@2da3c6e5",
         "@opam/ocaml-version@opam:3.5.0@6bef55f5",
-        "@opam/menhirSdk@opam:20230608@36f21a74",
-        "@opam/menhirLib@opam:20230608@cf13bc0d",
-        "@opam/menhir@opam:20230608@c0081728",
-        "@opam/fpath@opam:0.7.3@674d8125",
+        "@opam/menhirSdk@opam:20240715@9d924351",
+        "@opam/menhirLib@opam:20240715@3e1794bd",
+        "@opam/menhir@opam:20240715@454ed5d1",
+        "@opam/fpath@opam:0.7.3@d817a3b5",
         "@opam/fix@opam:20230505@941a65ff",
-        "@opam/either@opam:1.0.0@be5a1416",
-        "@opam/dune-build-info@opam:3.11.1@0dfbdab2",
+        "@opam/either@opam:1.0.0@378fa7c4",
+        "@opam/dune-build-info@opam:3.13.1@c2146656",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@opam/csexp@opam:1.5.2@46614bf4",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c",
-        "@opam/base@opam:v0.16.3@de1ba42e"
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f",
+        "@opam/base@opam:v0.16.3@162b7c08"
       ]
     },
-    "@opam/ocamlfind@opam:1.9.6@da5169c7": {
-      "id": "@opam/ocamlfind@opam:1.9.6@da5169c7",
+    "@opam/ocamlfind@opam:1.9.8@c73376ed": {
+      "id": "@opam/ocamlfind@opam:1.9.8@c73376ed",
       "name": "@opam/ocamlfind",
-      "version": "opam:1.9.6",
+      "version": "opam:1.9.8",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/96/96c6ee50a32cca9ca277321262dbec57#md5:96c6ee50a32cca9ca277321262dbec57",
-          "archive:http://download.camlcity.org/download/findlib-1.9.6.tar.gz#md5:96c6ee50a32cca9ca277321262dbec57"
+          "archive:https://opam.ocaml.org/cache/md5/ca/ca770e5806032a96131b670f6e07f146#md5:ca770e5806032a96131b670f6e07f146",
+          "archive:https://github.com/ocaml/ocamlfind/archive/refs/tags/findlib-1.9.8.tar.gz#md5:ca770e5806032a96131b670f6e07f146"
         ],
         "opam": {
           "name": "ocamlfind",
-          "version": "1.9.6",
-          "path": "esy.lock/opam/ocamlfind.1.9.6"
+          "version": "1.9.8",
+          "path": "esy.lock/opam/ocamlfind.1.9.8"
         }
       },
       "overrides": [
         {
           "opamoverride":
-            "esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override"
+            "esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.8_opam_override"
         }
       ],
       "dependencies": [
@@ -765,41 +779,27 @@
       ],
       "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ]
     },
-    "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d": {
-      "id": "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d",
+    "@opam/ocamlbuild@opam:0.16.1@b3fc8209": {
+      "id": "@opam/ocamlbuild@opam:0.16.1@b3fc8209",
       "name": "@opam/ocamlbuild",
-      "version": "opam:0.14.2+win",
+      "version": "opam:0.16.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/2f/2f407fadd57b073155a6aead887d9676#md5:2f407fadd57b073155a6aead887d9676",
-          "archive:https://github.com/ocaml/ocamlbuild/archive/refs/tags/0.14.2.tar.gz#md5:2f407fadd57b073155a6aead887d9676"
+          "archive:https://opam.ocaml.org/cache/sha512/e9/e918b9a0081f271e507c7a4f4d5d5a7cdf818ca51c52acec1bac85ddad5f6cad078cb3c568252fbcf5401c2d75323ed8f50fdd881bda1c9632840320408393ae#sha512:e918b9a0081f271e507c7a4f4d5d5a7cdf818ca51c52acec1bac85ddad5f6cad078cb3c568252fbcf5401c2d75323ed8f50fdd881bda1c9632840320408393ae",
+          "archive:https://github.com/ocaml/ocamlbuild/archive/refs/tags/0.16.1.tar.gz#sha512:e918b9a0081f271e507c7a4f4d5d5a7cdf818ca51c52acec1bac85ddad5f6cad078cb3c568252fbcf5401c2d75323ed8f50fdd881bda1c9632840320408393ae"
         ],
         "opam": {
           "name": "ocamlbuild",
-          "version": "0.14.2+win",
-          "path": "esy.lock/opam/ocamlbuild.0.14.2+win"
+          "version": "0.16.1",
+          "path": "esy.lock/opam/ocamlbuild.0.16.1"
         }
       },
-      "overrides": [
-        {
-          "opamoverride":
-            "esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override"
-        }
-      ],
+      "overrides": [],
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
-      "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ],
-      "extraSources": [
-        {
-          "checksum":
-            "sha256:a9b7e1829a3304e5a073d8ddea29d3d8272698e93b7e1ee659ae5e31e5cfb6b9",
-          "url":
-            "https://raw.githubusercontent.com/ocaml-opam/opam-repository-mingw/354a87b397856f2a70024c5c83fc5001074935b6/packages/ocamlbuild/ocamlbuild.0.14.2/files/ocamlbuild-0.14.2.patch",
-          "relativePath": "ocamlbuild-0.14.2.patch"
-        }
-      ]
+      "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ]
     },
     "@opam/ocaml-version@opam:3.5.0@6bef55f5": {
       "id": "@opam/ocaml-version@opam:3.5.0@6bef55f5",
@@ -826,61 +826,59 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/ocaml-lsp-server@opam:1.12.4@c24ab770": {
-      "id": "@opam/ocaml-lsp-server@opam:1.12.4@c24ab770",
+    "@opam/ocaml-lsp-server@opam:1.12.2@7e7be5b8": {
+      "id": "@opam/ocaml-lsp-server@opam:1.12.2@7e7be5b8",
       "name": "@opam/ocaml-lsp-server",
-      "version": "opam:1.12.4",
+      "version": "opam:1.12.2",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/91/919b98027cbc56359dabe8a911d3d24d1706cea8cd04e8173a2d1d3b06f9d846#sha256:919b98027cbc56359dabe8a911d3d24d1706cea8cd04e8173a2d1d3b06f9d846",
-          "archive:https://github.com/ocaml/ocaml-lsp/releases/download/1.12.4/lsp-1.12.4.tbz#sha256:919b98027cbc56359dabe8a911d3d24d1706cea8cd04e8173a2d1d3b06f9d846"
+          "archive:https://opam.ocaml.org/cache/sha256/cf/cf25c8587c848aa913a5e5cc6417e95901be58623c049116e733d8473597dd39#sha256:cf25c8587c848aa913a5e5cc6417e95901be58623c049116e733d8473597dd39",
+          "archive:https://github.com/ocaml/ocaml-lsp/releases/download/1.12.2/lsp-1.12.2.tbz#sha256:cf25c8587c848aa913a5e5cc6417e95901be58623c049116e733d8473597dd39"
         ],
         "opam": {
           "name": "ocaml-lsp-server",
-          "version": "1.12.4",
-          "path": "esy.lock/opam/ocaml-lsp-server.1.12.4"
+          "version": "1.12.2",
+          "path": "esy.lock/opam/ocaml-lsp-server.1.12.2"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.1@ad5e299c",
-        "@opam/xdg@opam:3.11.1@1e207b0b", "@opam/uutf@opam:1.0.3@47c95a18",
-        "@opam/stdune@opam:3.11.1@9a840882",
-        "@opam/spawn@opam:v0.15.1@85e9d6f1", "@opam/re@opam:1.11.0@87deb463",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.2.2@0786d153",
+        "@opam/xdg@opam:3.13.1@c5b5e65a", "@opam/uutf@opam:1.0.3@3527936b",
+        "@opam/stdune@opam:3.13.1@229d4fd8",
+        "@opam/spawn@opam:v0.17.0@d0f69739", "@opam/re@opam:1.12.0@42f7a5b9",
         "@opam/ppx_yojson_conv_lib@opam:v0.16.0@33740c3c",
         "@opam/pp@opam:1.2.0@16430027",
-        "@opam/ordering@opam:3.11.1@92c57daa",
-        "@opam/omd@opam:1.3.2@511d53d2",
-        "@opam/octavius@opam:1.2.2@2205cc65",
-        "@opam/ocamlformat-rpc-lib@opam:0.26.1@1f552fda",
-        "@opam/fiber@opam:3.7.0@d70e2471", "@opam/dyn@opam:3.11.1@d3c74846",
-        "@opam/dune-rpc@opam:3.11.1@1197fefa",
-        "@opam/dune-build-info@opam:3.11.1@0dfbdab2",
+        "@opam/ordering@opam:3.13.1@af68547e",
+        "@opam/omd@opam:1.3.1@f61efb81",
+        "@opam/octavius@opam:1.2.2@558886f0",
+        "@opam/ocamlformat-rpc-lib@opam:0.27.0@b911ff6f",
+        "@opam/fiber@opam:3.7.0@bf633a34", "@opam/dyn@opam:3.13.1@aeca9f35",
+        "@opam/dune-rpc@opam:3.13.1@7f0fc6be",
+        "@opam/dune-build-info@opam:3.13.1@c2146656",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@opam/csexp@opam:1.5.2@46614bf4",
-        "@opam/chrome-trace@opam:3.11.1@0e9213a3",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.1@ad5e299c",
-        "@opam/xdg@opam:3.11.1@1e207b0b", "@opam/uutf@opam:1.0.3@47c95a18",
-        "@opam/stdune@opam:3.11.1@9a840882",
-        "@opam/spawn@opam:v0.15.1@85e9d6f1", "@opam/re@opam:1.11.0@87deb463",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.2.2@0786d153",
+        "@opam/xdg@opam:3.13.1@c5b5e65a", "@opam/uutf@opam:1.0.3@3527936b",
+        "@opam/stdune@opam:3.13.1@229d4fd8",
+        "@opam/spawn@opam:v0.17.0@d0f69739", "@opam/re@opam:1.12.0@42f7a5b9",
         "@opam/ppx_yojson_conv_lib@opam:v0.16.0@33740c3c",
         "@opam/pp@opam:1.2.0@16430027",
-        "@opam/ordering@opam:3.11.1@92c57daa",
-        "@opam/omd@opam:1.3.2@511d53d2",
-        "@opam/octavius@opam:1.2.2@2205cc65",
-        "@opam/ocamlformat-rpc-lib@opam:0.26.1@1f552fda",
-        "@opam/fiber@opam:3.7.0@d70e2471", "@opam/dyn@opam:3.11.1@d3c74846",
-        "@opam/dune-rpc@opam:3.11.1@1197fefa",
-        "@opam/dune-build-info@opam:3.11.1@0dfbdab2",
-        "@opam/dune@opam:3.11.1@ba2e0e6a", "@opam/csexp@opam:1.5.2@46614bf4",
-        "@opam/chrome-trace@opam:3.11.1@0e9213a3"
+        "@opam/ordering@opam:3.13.1@af68547e",
+        "@opam/omd@opam:1.3.1@f61efb81",
+        "@opam/octavius@opam:1.2.2@558886f0",
+        "@opam/ocamlformat-rpc-lib@opam:0.27.0@b911ff6f",
+        "@opam/fiber@opam:3.7.0@bf633a34", "@opam/dyn@opam:3.13.1@aeca9f35",
+        "@opam/dune-rpc@opam:3.13.1@7f0fc6be",
+        "@opam/dune-build-info@opam:3.13.1@c2146656",
+        "@opam/dune@opam:3.11.1@ba2e0e6a", "@opam/csexp@opam:1.5.2@46614bf4"
       ]
     },
-    "@opam/ocaml-compiler-libs@opam:v0.12.4@41979882": {
-      "id": "@opam/ocaml-compiler-libs@opam:v0.12.4@41979882",
+    "@opam/ocaml-compiler-libs@opam:v0.12.4@57a85ad1": {
+      "id": "@opam/ocaml-compiler-libs@opam:v0.12.4@57a85ad1",
       "name": "@opam/ocaml-compiler-libs",
       "version": "opam:v0.12.4",
       "source": {
@@ -904,20 +902,20 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/menhirSdk@opam:20230608@36f21a74": {
-      "id": "@opam/menhirSdk@opam:20230608@36f21a74",
+    "@opam/menhirSdk@opam:20240715@9d924351": {
+      "id": "@opam/menhirSdk@opam:20240715@9d924351",
       "name": "@opam/menhirSdk",
-      "version": "opam:20230608",
+      "version": "opam:20240715",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/8f/8ff26b1e3685c472b7b3aba2fe938a43#md5:8ff26b1e3685c472b7b3aba2fe938a43",
-          "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20230608/archive.tar.gz#md5:8ff26b1e3685c472b7b3aba2fe938a43"
+          "archive:https://opam.ocaml.org/cache/md5/d3/d39a8943fe1be28199e5ec1f4133504c#md5:d39a8943fe1be28199e5ec1f4133504c",
+          "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20240715/archive.tar.gz#md5:d39a8943fe1be28199e5ec1f4133504c"
         ],
         "opam": {
           "name": "menhirSdk",
-          "version": "20230608",
-          "path": "esy.lock/opam/menhirSdk.20230608"
+          "version": "20240715",
+          "path": "esy.lock/opam/menhirSdk.20240715"
         }
       },
       "overrides": [],
@@ -929,20 +927,20 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/menhirLib@opam:20230608@cf13bc0d": {
-      "id": "@opam/menhirLib@opam:20230608@cf13bc0d",
+    "@opam/menhirLib@opam:20240715@3e1794bd": {
+      "id": "@opam/menhirLib@opam:20240715@3e1794bd",
       "name": "@opam/menhirLib",
-      "version": "opam:20230608",
+      "version": "opam:20240715",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/8f/8ff26b1e3685c472b7b3aba2fe938a43#md5:8ff26b1e3685c472b7b3aba2fe938a43",
-          "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20230608/archive.tar.gz#md5:8ff26b1e3685c472b7b3aba2fe938a43"
+          "archive:https://opam.ocaml.org/cache/md5/d3/d39a8943fe1be28199e5ec1f4133504c#md5:d39a8943fe1be28199e5ec1f4133504c",
+          "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20240715/archive.tar.gz#md5:d39a8943fe1be28199e5ec1f4133504c"
         ],
         "opam": {
           "name": "menhirLib",
-          "version": "20230608",
-          "path": "esy.lock/opam/menhirLib.20230608"
+          "version": "20240715",
+          "path": "esy.lock/opam/menhirLib.20240715"
         }
       },
       "overrides": [],
@@ -954,76 +952,103 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/menhir@opam:20230608@c0081728": {
-      "id": "@opam/menhir@opam:20230608@c0081728",
+    "@opam/menhirCST@opam:20240715@b768dcc7": {
+      "id": "@opam/menhirCST@opam:20240715@b768dcc7",
+      "name": "@opam/menhirCST",
+      "version": "opam:20240715",
+      "source": {
+        "type": "install",
+        "source": [
+          "archive:https://opam.ocaml.org/cache/md5/d3/d39a8943fe1be28199e5ec1f4133504c#md5:d39a8943fe1be28199e5ec1f4133504c",
+          "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20240715/archive.tar.gz#md5:d39a8943fe1be28199e5ec1f4133504c"
+        ],
+        "opam": {
+          "name": "menhirCST",
+          "version": "20240715",
+          "path": "esy.lock/opam/menhirCST.20240715"
+        }
+      },
+      "overrides": [],
+      "dependencies": [
+        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "@esy-ocaml/substs@0.0.1@d41d8cd9"
+      ],
+      "devDependencies": [
+        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
+      ]
+    },
+    "@opam/menhir@opam:20240715@454ed5d1": {
+      "id": "@opam/menhir@opam:20240715@454ed5d1",
       "name": "@opam/menhir",
-      "version": "opam:20230608",
+      "version": "opam:20240715",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/8f/8ff26b1e3685c472b7b3aba2fe938a43#md5:8ff26b1e3685c472b7b3aba2fe938a43",
-          "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20230608/archive.tar.gz#md5:8ff26b1e3685c472b7b3aba2fe938a43"
+          "archive:https://opam.ocaml.org/cache/md5/d3/d39a8943fe1be28199e5ec1f4133504c#md5:d39a8943fe1be28199e5ec1f4133504c",
+          "archive:https://gitlab.inria.fr/fpottier/menhir/-/archive/20240715/archive.tar.gz#md5:d39a8943fe1be28199e5ec1f4133504c"
         ],
         "opam": {
           "name": "menhir",
-          "version": "20230608",
-          "path": "esy.lock/opam/menhir.20230608"
+          "version": "20240715",
+          "path": "esy.lock/opam/menhir.20240715"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/menhirSdk@opam:20230608@36f21a74",
-        "@opam/menhirLib@opam:20230608@cf13bc0d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/menhirSdk@opam:20240715@9d924351",
+        "@opam/menhirLib@opam:20240715@3e1794bd",
+        "@opam/menhirCST@opam:20240715@b768dcc7",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/menhirSdk@opam:20230608@36f21a74",
-        "@opam/menhirLib@opam:20230608@cf13bc0d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/menhirSdk@opam:20240715@9d924351",
+        "@opam/menhirLib@opam:20240715@3e1794bd",
+        "@opam/menhirCST@opam:20240715@b768dcc7",
         "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/js_of_ocaml-compiler@opam:5.4.0@1442ca67": {
-      "id": "@opam/js_of_ocaml-compiler@opam:5.4.0@1442ca67",
+    "@opam/js_of_ocaml-compiler@opam:5.8.2@16ce3125": {
+      "id": "@opam/js_of_ocaml-compiler@opam:5.8.2@16ce3125",
       "name": "@opam/js_of_ocaml-compiler",
-      "version": "opam:5.4.0",
+      "version": "opam:5.8.2",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/f1/f1215de133867fefdb16e2798a225ee0446469a57462af0deebdd22d2a8d3b94#sha256:f1215de133867fefdb16e2798a225ee0446469a57462af0deebdd22d2a8d3b94",
-          "archive:https://github.com/ocsigen/js_of_ocaml/releases/download/5.4.0/js_of_ocaml-5.4.0.tbz#sha256:f1215de133867fefdb16e2798a225ee0446469a57462af0deebdd22d2a8d3b94"
+          "archive:https://opam.ocaml.org/cache/sha256/72/7220194bd2f9b14d958153a5a206750359d7b49de12fe88d7450d385cecbf04a#sha256:7220194bd2f9b14d958153a5a206750359d7b49de12fe88d7450d385cecbf04a",
+          "archive:https://github.com/ocsigen/js_of_ocaml/releases/download/5.8.2/js_of_ocaml-5.8.2.tbz#sha256:7220194bd2f9b14d958153a5a206750359d7b49de12fe88d7450d385cecbf04a"
         ],
         "opam": {
           "name": "js_of_ocaml-compiler",
-          "version": "5.4.0",
-          "path": "esy.lock/opam/js_of_ocaml-compiler.5.4.0"
+          "version": "5.8.2",
+          "path": "esy.lock/opam/js_of_ocaml-compiler.5.8.2"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.1@ad5e299c",
-        "@opam/sedlex@opam:3.2@eab3a2e0",
-        "@opam/ppxlib@opam:0.29.1@a8bb9506",
-        "@opam/ocamlfind@opam:1.9.6@da5169c7",
-        "@opam/menhirSdk@opam:20230608@36f21a74",
-        "@opam/menhirLib@opam:20230608@cf13bc0d",
-        "@opam/menhir@opam:20230608@c0081728",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.2.2@0786d153",
+        "@opam/sedlex@opam:3.3@8168b930",
+        "@opam/ppxlib@opam:0.33.0@83023edc",
+        "@opam/ocamlfind@opam:1.9.8@c73376ed",
+        "@opam/menhirSdk@opam:20240715@9d924351",
+        "@opam/menhirLib@opam:20240715@3e1794bd",
+        "@opam/menhir@opam:20240715@454ed5d1",
         "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c",
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.1.1@ad5e299c",
-        "@opam/sedlex@opam:3.2@eab3a2e0",
-        "@opam/ppxlib@opam:0.29.1@a8bb9506",
-        "@opam/menhirSdk@opam:20230608@36f21a74",
-        "@opam/menhirLib@opam:20230608@cf13bc0d",
-        "@opam/menhir@opam:20230608@c0081728",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/yojson@opam:2.2.2@0786d153",
+        "@opam/sedlex@opam:3.3@8168b930",
+        "@opam/ppxlib@opam:0.33.0@83023edc",
+        "@opam/menhirSdk@opam:20240715@9d924351",
+        "@opam/menhirLib@opam:20240715@3e1794bd",
+        "@opam/menhir@opam:20240715@454ed5d1",
         "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/cmdliner@opam:1.2.0@b0c6143c"
+        "@opam/cmdliner@opam:1.3.0@8e6dd99f"
       ]
     },
-    "@opam/gen@opam:1.1@059b2731": {
-      "id": "@opam/gen@opam:1.1@059b2731",
+    "@opam/gen@opam:1.1@55327887": {
+      "id": "@opam/gen@opam:1.1@55327887",
       "name": "@opam/gen",
       "version": "opam:1.1",
       "source": {
@@ -1040,23 +1065,23 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@5ed5af70",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@d8d7de1d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/seq@opam:base@5ed5af70",
         "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/fpath@opam:0.7.3@674d8125": {
-      "id": "@opam/fpath@opam:0.7.3@674d8125",
+    "@opam/fpath@opam:0.7.3@d817a3b5": {
+      "id": "@opam/fpath@opam:0.7.3@d817a3b5",
       "name": "@opam/fpath",
       "version": "opam:0.7.3",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/07/0740b530e8fed5b0adc5eee8463cfc2f#md5:0740b530e8fed5b0adc5eee8463cfc2f",
-          "archive:https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz#md5:0740b530e8fed5b0adc5eee8463cfc2f"
+          "archive:https://opam.ocaml.org/cache/sha256/12/12b08ff192d037d9b6d69e9ca19d1d385184f20b3237c27231e437ac81ace70f#sha256:12b08ff192d037d9b6d69e9ca19d1d385184f20b3237c27231e437ac81ace70f",
+          "archive:https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz#sha256:12b08ff192d037d9b6d69e9ca19d1d385184f20b3237c27231e437ac81ace70f"
         ],
         "opam": {
           "name": "fpath",
@@ -1066,14 +1091,14 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@7ee47d76",
-        "@opam/ocamlfind@opam:1.9.6@da5169c7",
-        "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d",
-        "@opam/astring@opam:0.8.5@1300cee8",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@e59fb83d",
+        "@opam/ocamlfind@opam:1.9.8@c73376ed",
+        "@opam/ocamlbuild@opam:0.16.1@b3fc8209",
+        "@opam/astring@opam:0.8.5@9975798d",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/astring@opam:0.8.5@1300cee8"
+        "ocaml@4.14.1000@d41d8cd9", "@opam/astring@opam:0.8.5@9975798d"
       ]
     },
     "@opam/fix@opam:20230505@941a65ff": {
@@ -1101,8 +1126,8 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/fiber@opam:3.7.0@d70e2471": {
-      "id": "@opam/fiber@opam:3.7.0@d70e2471",
+    "@opam/fiber@opam:3.7.0@bf633a34": {
+      "id": "@opam/fiber@opam:3.7.0@bf633a34",
       "name": "@opam/fiber",
       "version": "opam:3.7.0",
       "source": {
@@ -1119,17 +1144,17 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/stdune@opam:3.11.1@9a840882",
-        "@opam/dyn@opam:3.11.1@d3c74846", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/stdune@opam:3.13.1@229d4fd8",
+        "@opam/dyn@opam:3.13.1@aeca9f35", "@opam/dune@opam:3.11.1@ba2e0e6a",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/stdune@opam:3.11.1@9a840882",
-        "@opam/dyn@opam:3.11.1@d3c74846", "@opam/dune@opam:3.11.1@ba2e0e6a"
+        "ocaml@4.14.1000@d41d8cd9", "@opam/stdune@opam:3.13.1@229d4fd8",
+        "@opam/dyn@opam:3.13.1@aeca9f35", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/either@opam:1.0.0@be5a1416": {
-      "id": "@opam/either@opam:1.0.0@be5a1416",
+    "@opam/either@opam:1.0.0@378fa7c4": {
+      "id": "@opam/either@opam:1.0.0@378fa7c4",
       "name": "@opam/either",
       "version": "opam:1.0.0",
       "source": {
@@ -1146,84 +1171,87 @@
       },
       "overrides": [],
       "dependencies": [
-        "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
+        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
-      "devDependencies": [ "@opam/dune@opam:3.11.1@ba2e0e6a" ]
+      "devDependencies": [
+        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
+      ]
     },
-    "@opam/dyn@opam:3.11.1@d3c74846": {
-      "id": "@opam/dyn@opam:3.11.1@d3c74846",
+    "@opam/dyn@opam:3.13.1@aeca9f35": {
+      "id": "@opam/dyn@opam:3.13.1@aeca9f35",
       "name": "@opam/dyn",
-      "version": "opam:3.11.1",
+      "version": "opam:3.13.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/86/866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71",
-          "archive:https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
+          "archive:https://opam.ocaml.org/cache/sha256/2f/2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916",
+          "archive:https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
         ],
         "opam": {
           "name": "dyn",
-          "version": "3.11.1",
-          "path": "esy.lock/opam/dyn.3.11.1"
+          "version": "3.13.1",
+          "path": "esy.lock/opam/dyn.3.13.1"
         }
       },
       "overrides": [],
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/pp@opam:1.2.0@16430027",
-        "@opam/ordering@opam:3.11.1@92c57daa",
+        "@opam/ordering@opam:3.13.1@af68547e",
         "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/pp@opam:1.2.0@16430027",
-        "@opam/ordering@opam:3.11.1@92c57daa",
+        "@opam/ordering@opam:3.13.1@af68547e",
         "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/dune-rpc@opam:3.11.1@1197fefa": {
-      "id": "@opam/dune-rpc@opam:3.11.1@1197fefa",
+    "@opam/dune-rpc@opam:3.13.1@7f0fc6be": {
+      "id": "@opam/dune-rpc@opam:3.13.1@7f0fc6be",
       "name": "@opam/dune-rpc",
-      "version": "opam:3.11.1",
+      "version": "opam:3.13.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/86/866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71",
-          "archive:https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
+          "archive:https://opam.ocaml.org/cache/sha256/2f/2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916",
+          "archive:https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
         ],
         "opam": {
           "name": "dune-rpc",
-          "version": "3.11.1",
-          "path": "esy.lock/opam/dune-rpc.3.11.1"
+          "version": "3.13.1",
+          "path": "esy.lock/opam/dune-rpc.3.13.1"
         }
       },
       "overrides": [],
       "dependencies": [
-        "@opam/xdg@opam:3.11.1@1e207b0b",
-        "@opam/stdune@opam:3.11.1@9a840882", "@opam/pp@opam:1.2.0@16430027",
-        "@opam/ordering@opam:3.11.1@92c57daa",
-        "@opam/dyn@opam:3.11.1@d3c74846", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "@opam/xdg@opam:3.13.1@c5b5e65a",
+        "@opam/stdune@opam:3.13.1@229d4fd8", "@opam/pp@opam:1.2.0@16430027",
+        "@opam/ordering@opam:3.13.1@af68547e",
+        "@opam/dyn@opam:3.13.1@aeca9f35", "@opam/dune@opam:3.11.1@ba2e0e6a",
         "@opam/csexp@opam:1.5.2@46614bf4", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "@opam/xdg@opam:3.11.1@1e207b0b",
-        "@opam/stdune@opam:3.11.1@9a840882", "@opam/pp@opam:1.2.0@16430027",
-        "@opam/ordering@opam:3.11.1@92c57daa",
-        "@opam/dyn@opam:3.11.1@d3c74846", "@opam/dune@opam:3.11.1@ba2e0e6a",
+        "@opam/xdg@opam:3.13.1@c5b5e65a",
+        "@opam/stdune@opam:3.13.1@229d4fd8", "@opam/pp@opam:1.2.0@16430027",
+        "@opam/ordering@opam:3.13.1@af68547e",
+        "@opam/dyn@opam:3.13.1@aeca9f35", "@opam/dune@opam:3.11.1@ba2e0e6a",
         "@opam/csexp@opam:1.5.2@46614bf4"
       ]
     },
-    "@opam/dune-configurator@opam:3.11.1@24d75a5c": {
-      "id": "@opam/dune-configurator@opam:3.11.1@24d75a5c",
+    "@opam/dune-configurator@opam:3.13.1@0b0ef485": {
+      "id": "@opam/dune-configurator@opam:3.13.1@0b0ef485",
       "name": "@opam/dune-configurator",
-      "version": "opam:3.11.1",
+      "version": "opam:3.13.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/86/866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71",
-          "archive:https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
+          "archive:https://opam.ocaml.org/cache/sha256/2f/2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916",
+          "archive:https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
         ],
         "opam": {
           "name": "dune-configurator",
-          "version": "3.11.1",
-          "path": "esy.lock/opam/dune-configurator.3.11.1"
+          "version": "3.13.1",
+          "path": "esy.lock/opam/dune-configurator.3.13.1"
         }
       },
       "overrides": [],
@@ -1239,20 +1267,20 @@
         "@opam/base-unix@opam:base@87d0b2eb"
       ]
     },
-    "@opam/dune-build-info@opam:3.11.1@0dfbdab2": {
-      "id": "@opam/dune-build-info@opam:3.11.1@0dfbdab2",
+    "@opam/dune-build-info@opam:3.13.1@c2146656": {
+      "id": "@opam/dune-build-info@opam:3.13.1@c2146656",
       "name": "@opam/dune-build-info",
-      "version": "opam:3.11.1",
+      "version": "opam:3.13.1",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/86/866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71",
-          "archive:https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
+          "archive:https://opam.ocaml.org/cache/sha256/2f/2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916",
+          "archive:https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz#sha256:2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
         ],
         "opam": {
           "name": "dune-build-info",
-          "version": "3.11.1",
-          "path": "esy.lock/opam/dune-build-info.3.11.1"
+          "version": "3.13.1",
+          "path": "esy.lock/opam/dune-build-info.3.13.1"
         }
       },
       "overrides": [],
@@ -1316,33 +1344,6 @@
         "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
       ]
     },
-    "@opam/cppo@opam:1.6.9@db929a12": {
-      "id": "@opam/cppo@opam:1.6.9@db929a12",
-      "name": "@opam/cppo",
-      "version": "opam:1.6.9",
-      "source": {
-        "type": "install",
-        "source": [
-          "archive:https://opam.ocaml.org/cache/md5/d2/d23ffe85ac7dc8f0afd1ddf622770d09#md5:d23ffe85ac7dc8f0afd1ddf622770d09",
-          "archive:https://github.com/ocaml-community/cppo/archive/v1.6.9.tar.gz#md5:d23ffe85ac7dc8f0afd1ddf622770d09"
-        ],
-        "opam": {
-          "name": "cppo",
-          "version": "1.6.9",
-          "path": "esy.lock/opam/cppo.1.6.9"
-        }
-      },
-      "overrides": [],
-      "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/base-unix@opam:base@87d0b2eb",
-        "@esy-ocaml/substs@0.0.1@d41d8cd9"
-      ],
-      "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@opam/base-unix@opam:base@87d0b2eb"
-      ]
-    },
     "@opam/conf-cmake@github:grain-lang/cmake:esy.json#91a2c3677bef84a6eb20318284dff9f3bf32719d@d41d8cd9": {
       "id":
         "@opam/conf-cmake@github:grain-lang/cmake:esy.json#91a2c3677bef84a6eb20318284dff9f3bf32719d@d41d8cd9",
@@ -1359,55 +1360,47 @@
       "dependencies": [],
       "devDependencies": []
     },
-    "@opam/cmdliner@opam:1.2.0@b0c6143c": {
-      "id": "@opam/cmdliner@opam:1.2.0@b0c6143c",
-      "name": "@opam/cmdliner",
-      "version": "opam:1.2.0",
+    "@opam/conf-bash@opam:1@46c43d96": {
+      "id": "@opam/conf-bash@opam:1@46c43d96",
+      "name": "@opam/conf-bash",
+      "version": "opam:1",
       "source": {
         "type": "install",
-        "source": [
-          "archive:https://opam.ocaml.org/cache/sha512/6f/6fcd6a59a6fbc6986b1aecdc3e4ce7a0dc43c65a16b427d6caa5504b10b51384f6b0bc703af646b09f5f1caeb6827b37d4480ce350ca8006204c850785f2810b#sha512:6fcd6a59a6fbc6986b1aecdc3e4ce7a0dc43c65a16b427d6caa5504b10b51384f6b0bc703af646b09f5f1caeb6827b37d4480ce350ca8006204c850785f2810b",
-          "archive:https://erratique.ch/software/cmdliner/releases/cmdliner-1.2.0.tbz#sha512:6fcd6a59a6fbc6986b1aecdc3e4ce7a0dc43c65a16b427d6caa5504b10b51384f6b0bc703af646b09f5f1caeb6827b37d4480ce350ca8006204c850785f2810b"
-        ],
+        "source": [ "no-source:" ],
         "opam": {
-          "name": "cmdliner",
-          "version": "1.2.0",
-          "path": "esy.lock/opam/cmdliner.1.2.0"
+          "name": "conf-bash",
+          "version": "1",
+          "path": "esy.lock/opam/conf-bash.1"
         }
       },
       "overrides": [],
-      "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9"
-      ],
-      "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ]
+      "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ],
+      "devDependencies": []
     },
-    "@opam/chrome-trace@opam:3.11.1@0e9213a3": {
-      "id": "@opam/chrome-trace@opam:3.11.1@0e9213a3",
-      "name": "@opam/chrome-trace",
-      "version": "opam:3.11.1",
+    "@opam/cmdliner@opam:1.3.0@8e6dd99f": {
+      "id": "@opam/cmdliner@opam:1.3.0@8e6dd99f",
+      "name": "@opam/cmdliner",
+      "version": "opam:1.3.0",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/sha256/86/866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71",
-          "archive:https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz#sha256:866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
+          "archive:https://opam.ocaml.org/cache/sha512/4c/4c46bc334444ff772637deae2f5ba03645d7a1b7db523470a1246acfce79b971c764d964cbb02388639b3161b279700d9ade95da550446fb32aa4849c8a8f283#sha512:4c46bc334444ff772637deae2f5ba03645d7a1b7db523470a1246acfce79b971c764d964cbb02388639b3161b279700d9ade95da550446fb32aa4849c8a8f283",
+          "archive:https://erratique.ch/software/cmdliner/releases/cmdliner-1.3.0.tbz#sha512:4c46bc334444ff772637deae2f5ba03645d7a1b7db523470a1246acfce79b971c764d964cbb02388639b3161b279700d9ade95da550446fb32aa4849c8a8f283"
         ],
         "opam": {
-          "name": "chrome-trace",
-          "version": "3.11.1",
-          "path": "esy.lock/opam/chrome-trace.3.11.1"
+          "name": "cmdliner",
+          "version": "1.3.0",
+          "path": "esy.lock/opam/cmdliner.1.3.0"
         }
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@esy-ocaml/substs@0.0.1@d41d8cd9"
+        "ocaml@4.14.1000@d41d8cd9", "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
-      "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/dune@opam:3.11.1@ba2e0e6a"
-      ]
+      "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ]
     },
-    "@opam/camlp-streams@opam:5.0.1@daaa0f94": {
-      "id": "@opam/camlp-streams@opam:5.0.1@daaa0f94",
+    "@opam/camlp-streams@opam:5.0.1@8e96208c": {
+      "id": "@opam/camlp-streams@opam:5.0.1@8e96208c",
       "name": "@opam/camlp-streams",
       "version": "opam:5.0.1",
       "source": {
@@ -1480,11 +1473,11 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.6@da5169c7",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.8@c73376ed",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.6@da5169c7"
+        "ocaml@4.14.1000@d41d8cd9", "@opam/ocamlfind@opam:1.9.8@c73376ed"
       ]
     },
     "@opam/base-bigarray@opam:base@b03491b0": {
@@ -1504,8 +1497,8 @@
       "dependencies": [ "@esy-ocaml/substs@0.0.1@d41d8cd9" ],
       "devDependencies": []
     },
-    "@opam/base@opam:v0.16.3@de1ba42e": {
-      "id": "@opam/base@opam:v0.16.3@de1ba42e",
+    "@opam/base@opam:v0.16.3@162b7c08": {
+      "id": "@opam/base@opam:v0.16.3@162b7c08",
       "name": "@opam/base",
       "version": "opam:v0.16.3",
       "source": {
@@ -1523,24 +1516,25 @@
       "overrides": [],
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/sexplib0@opam:v0.16.0@c0ffad0c",
-        "@opam/dune-configurator@opam:3.11.1@24d75a5c",
-        "@opam/dune@opam:3.11.1@ba2e0e6a", "@esy-ocaml/substs@0.0.1@d41d8cd9"
+        "@opam/dune-configurator@opam:3.13.1@0b0ef485",
+        "@opam/dune@opam:3.11.1@ba2e0e6a", "@opam/conf-bash@opam:1@46c43d96",
+        "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [
         "ocaml@4.14.1000@d41d8cd9", "@opam/sexplib0@opam:v0.16.0@c0ffad0c",
-        "@opam/dune-configurator@opam:3.11.1@24d75a5c",
-        "@opam/dune@opam:3.11.1@ba2e0e6a"
+        "@opam/dune-configurator@opam:3.13.1@0b0ef485",
+        "@opam/dune@opam:3.11.1@ba2e0e6a", "@opam/conf-bash@opam:1@46c43d96"
       ]
     },
-    "@opam/astring@opam:0.8.5@1300cee8": {
-      "id": "@opam/astring@opam:0.8.5@1300cee8",
+    "@opam/astring@opam:0.8.5@9975798d": {
+      "id": "@opam/astring@opam:0.8.5@9975798d",
       "name": "@opam/astring",
       "version": "opam:0.8.5",
       "source": {
         "type": "install",
         "source": [
-          "archive:https://opam.ocaml.org/cache/md5/e1/e148907c24157d1df43bec89b58b3ec8#md5:e148907c24157d1df43bec89b58b3ec8",
-          "archive:https://erratique.ch/software/astring/releases/astring-0.8.5.tbz#md5:e148907c24157d1df43bec89b58b3ec8"
+          "archive:https://opam.ocaml.org/cache/sha256/86/865692630c07c3ab87c66cdfc2734c0fdfc9c34a57f8e89ffec7c7d15e7a70fa#sha256:865692630c07c3ab87c66cdfc2734c0fdfc9c34a57f8e89ffec7c7d15e7a70fa",
+          "archive:https://erratique.ch/software/astring/releases/astring-0.8.5.tbz#sha256:865692630c07c3ab87c66cdfc2734c0fdfc9c34a57f8e89ffec7c7d15e7a70fa"
         ],
         "opam": {
           "name": "astring",
@@ -1550,27 +1544,22 @@
       },
       "overrides": [],
       "dependencies": [
-        "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@7ee47d76",
-        "@opam/ocamlfind@opam:1.9.6@da5169c7",
-        "@opam/ocamlbuild@opam:0.14.2+win@39b9f56d",
+        "ocaml@4.14.1000@d41d8cd9", "@opam/topkg@opam:1.0.7@e59fb83d",
+        "@opam/ocamlfind@opam:1.9.8@c73376ed",
+        "@opam/ocamlbuild@opam:0.16.1@b3fc8209",
         "@esy-ocaml/substs@0.0.1@d41d8cd9"
       ],
       "devDependencies": [ "ocaml@4.14.1000@d41d8cd9" ]
     },
-    "@grain/libbinaryen@114.0.0@d41d8cd9": {
-      "id": "@grain/libbinaryen@114.0.0@d41d8cd9",
+    "@grain/libbinaryen@link:../libbinaryen": {
+      "id": "@grain/libbinaryen@link:../libbinaryen",
       "name": "@grain/libbinaryen",
-      "version": "114.0.0",
-      "source": {
-        "type": "install",
-        "source": [
-          "archive:https://registry.npmjs.org/@grain/libbinaryen/-/libbinaryen-114.0.0.tgz#sha1:ed32b9b239299ad5757478e21b49d501a2d9b049"
-        ]
-      },
+      "version": "link:../libbinaryen",
+      "source": { "type": "link", "path": "../libbinaryen" },
       "overrides": [],
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9",
-        "@opam/dune-configurator@opam:3.11.1@24d75a5c",
+        "@opam/dune-configurator@opam:3.13.1@0b0ef485",
         "@opam/dune@opam:3.11.1@ba2e0e6a",
         "@opam/conf-cmake@github:grain-lang/cmake:esy.json#91a2c3677bef84a6eb20318284dff9f3bf32719d@d41d8cd9"
       ],
@@ -1589,14 +1578,14 @@
       "overrides": [],
       "dependencies": [
         "ocaml@4.14.1000@d41d8cd9",
-        "@opam/dune-configurator@opam:3.11.1@24d75a5c",
+        "@opam/dune-configurator@opam:3.13.1@0b0ef485",
         "@opam/dune@opam:3.11.1@ba2e0e6a",
-        "@grain/libbinaryen@114.0.0@d41d8cd9"
+        "@grain/libbinaryen@link:../libbinaryen"
       ],
       "devDependencies": [
-        "@opam/ocamlformat@opam:0.24.1@d7f4254d",
-        "@opam/ocaml-lsp-server@opam:1.12.4@c24ab770",
-        "@opam/js_of_ocaml-compiler@opam:5.4.0@1442ca67"
+        "@opam/ocamlformat@opam:0.24.1@01d7df0f",
+        "@opam/ocaml-lsp-server@opam:1.12.2@7e7be5b8",
+        "@opam/js_of_ocaml-compiler@opam:5.8.2@16ce3125"
       ],
       "installConfig": { "pnp": false }
     },
diff --git a/esy.lock/opam/astring.0.8.5/opam b/esy.lock/opam/astring.0.8.5/opam
index 338a06a3..b49dff50 100644
--- a/esy.lock/opam/astring.0.8.5/opam
+++ b/esy.lock/opam/astring.0.8.5/opam
@@ -32,6 +32,11 @@ Astring depends only on the OCaml standard library. It is distributed
 under the ISC license.
 """
 url {
-archive: "https://erratique.ch/software/astring/releases/astring-0.8.5.tbz"
-checksum: "e148907c24157d1df43bec89b58b3ec8"
+  src: "https://erratique.ch/software/astring/releases/astring-0.8.5.tbz"
+  checksum: [
+    "sha256=865692630c07c3ab87c66cdfc2734c0fdfc9c34a57f8e89ffec7c7d15e7a70fa"
+    "md5=e148907c24157d1df43bec89b58b3ec8"
+  ]
 }
+
+x-maintenance-intent: ["(latest)"]
\ No newline at end of file
diff --git a/esy.lock/opam/base.v0.16.3/opam b/esy.lock/opam/base.v0.16.3/opam
index 30f29f5f..c54e0004 100644
--- a/esy.lock/opam/base.v0.16.3/opam
+++ b/esy.lock/opam/base.v0.16.3/opam
@@ -14,6 +14,7 @@ depends: [
   "sexplib0"          {>= "v0.16" & < "v0.17"}
   "dune"              {>= "2.0.0"}
   "dune-configurator"
+  "conf-bash"
 ]
 synopsis: "Full standard library replacement for OCaml"
 description: "
diff --git a/esy.lock/opam/camlp-streams.5.0.1/opam b/esy.lock/opam/camlp-streams.5.0.1/opam
index 60e51311..8cb097f4 100644
--- a/esy.lock/opam/camlp-streams.5.0.1/opam
+++ b/esy.lock/opam/camlp-streams.5.0.1/opam
@@ -30,6 +30,7 @@ authors: ["Daniel de Rauglaudre" "Xavier Leroy"]
 license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
 homepage: "https://github.com/ocaml/camlp-streams"
 bug-reports: "https://github.com/ocaml/camlp-streams/issues"
+x-maintenance-intent: ["(latest)"]
 depends: [
   "dune" {>= "2.7"}
   "ocaml" {>= "4.02.3"}
diff --git a/esy.lock/opam/chrome-trace.3.11.1/opam b/esy.lock/opam/chrome-trace.3.11.1/opam
deleted file mode 100644
index da2dd42d..00000000
--- a/esy.lock/opam/chrome-trace.3.11.1/opam
+++ /dev/null
@@ -1,40 +0,0 @@
-opam-version: "2.0"
-synopsis: "Chrome trace event generation library"
-description:
-  "This library offers no backwards compatibility guarantees. Use at your own risk."
-maintainer: ["Jane Street Group, LLC <opensource@janestreet.com>"]
-authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
-license: "MIT"
-homepage: "https://github.com/ocaml/dune"
-doc: "https://dune.readthedocs.io/"
-bug-reports: "https://github.com/ocaml/dune/issues"
-depends: [
-  "dune" {>= "3.5"}
-  "ocaml" {>= "4.08.0"}
-  "odoc" {with-doc}
-]
-dev-repo: "git+https://github.com/ocaml/dune.git"
-build: [
-  ["dune" "subst"] {dev}
-  ["rm" "-rf" "vendor/csexp"]
-  ["rm" "-rf" "vendor/pp"]
-  [
-    "dune"
-    "build"
-    "-p"
-    name
-    "-j"
-    jobs
-    "@install"
-    "@doc" {with-doc}
-  ]
-]
-url {
-  src:
-    "https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz"
-  checksum: [
-    "sha256=866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
-    "sha512=c888153b204a16bcfed2636de776bbd5f9ca84484e716cc1e9ef3ba3c904e9dd15a2609ae943cddb6097912623ec54618c58386d6730ff742d746850400fb3cc"
-  ]
-}
-x-commit-hash: "7cbb0e7277c6cacd1ccf7941cac5a03c25fc63cf"
diff --git a/esy.lock/opam/cmdliner.1.2.0/opam b/esy.lock/opam/cmdliner.1.3.0/opam
similarity index 88%
rename from esy.lock/opam/cmdliner.1.2.0/opam
rename to esy.lock/opam/cmdliner.1.3.0/opam
index b29bd296..a44943d8 100644
--- a/esy.lock/opam/cmdliner.1.2.0/opam
+++ b/esy.lock/opam/cmdliner.1.3.0/opam
@@ -33,7 +33,8 @@ install: [
 ]
 dev-repo: "git+https://erratique.ch/repos/cmdliner.git"
 url {
-  src: "https://erratique.ch/software/cmdliner/releases/cmdliner-1.2.0.tbz"
+  src: "https://erratique.ch/software/cmdliner/releases/cmdliner-1.3.0.tbz"
   checksum:
-    "sha512=6fcd6a59a6fbc6986b1aecdc3e4ce7a0dc43c65a16b427d6caa5504b10b51384f6b0bc703af646b09f5f1caeb6827b37d4480ce350ca8006204c850785f2810b"
-}
\ No newline at end of file
+    "sha512=4c46bc334444ff772637deae2f5ba03645d7a1b7db523470a1246acfce79b971c764d964cbb02388639b3161b279700d9ade95da550446fb32aa4849c8a8f283"
+}
+x-maintenance-intent: ["(latest)"]
\ No newline at end of file
diff --git a/esy.lock/opam/conf-bash.1/opam b/esy.lock/opam/conf-bash.1/opam
new file mode 100644
index 00000000..c4276720
--- /dev/null
+++ b/esy.lock/opam/conf-bash.1/opam
@@ -0,0 +1,14 @@
+opam-version: "2.0"
+maintainer: "code@bnwr.net"
+homepage: "https://www.gnu.org/software/bash/"
+bug-reports: "https://github.com/ocaml/opam-repository/issues"
+license: "GPL-3.0-or-later"
+build: ["bash" "--version"]
+depexts: [
+  ["bash"] {os-family = "bsd"}
+  ["bash"] {os-distribution = "alpine"}
+]
+synopsis: "Virtual package to install the Bash shell"
+description: "This package will install a system bash"
+authors: "code@bnwr.net"
+flags: conf
diff --git a/esy.lock/opam/cppo.1.6.9/opam b/esy.lock/opam/cppo.1.6.9/opam
deleted file mode 100644
index 9c51ec6d..00000000
--- a/esy.lock/opam/cppo.1.6.9/opam
+++ /dev/null
@@ -1,39 +0,0 @@
-opam-version: "2.0"
-synopsis: "Code preprocessor like cpp for OCaml"
-description: """\
-Cppo is an equivalent of the C preprocessor for OCaml programs.
-It allows the definition of simple macros and file inclusion.
-
-Cppo is:
-
-* more OCaml-friendly than cpp
-* easy to learn without consulting a manual
-* reasonably fast
-* simple to install and to maintain"""
-maintainer: [
-  "Martin Jambon <martin@mjambon.com>" "Yishuai Li <yishuai@upenn.edu>"
-]
-authors: "Martin Jambon"
-license: "BSD-3-Clause"
-homepage: "https://github.com/ocaml-community/cppo"
-doc: "https://ocaml-community.github.io/cppo"
-bug-reports: "https://github.com/ocaml-community/cppo/issues"
-depends: [
-  "ocaml" {>= "4.02.3"}
-  "dune" {>= "1.10"}
-  "base-unix"
-]
-build: [
-  ["dune" "subst"] {dev}
-  ["dune" "build" "-p" name "-j" jobs]
-  ["dune" "runtest" "-p" name "-j" jobs] {with-test}
-  ["dune" "build" "-p" name "@doc"] {with-doc}
-]
-dev-repo: "git+https://github.com/ocaml-community/cppo.git"
-url {
-  src: "https://github.com/ocaml-community/cppo/archive/v1.6.9.tar.gz"
-  checksum: [
-    "md5=d23ffe85ac7dc8f0afd1ddf622770d09"
-    "sha512=26ff5a7b7f38c460661974b23ca190f0feae3a99f1974e0fd12ccf08745bd7d91b7bc168c70a5385b837bfff9530e0e4e41cf269f23dd8cf16ca658008244b44"
-  ]
-}
\ No newline at end of file
diff --git a/esy.lock/opam/dune-build-info.3.11.1/opam b/esy.lock/opam/dune-build-info.3.13.1/opam
similarity index 75%
rename from esy.lock/opam/dune-build-info.3.11.1/opam
rename to esy.lock/opam/dune-build-info.3.13.1/opam
index f0bb6ed4..66f40b76 100644
--- a/esy.lock/opam/dune-build-info.3.11.1/opam
+++ b/esy.lock/opam/dune-build-info.3.13.1/opam
@@ -37,10 +37,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz"
+    "https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz"
   checksum: [
-    "sha256=866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
-    "sha512=c888153b204a16bcfed2636de776bbd5f9ca84484e716cc1e9ef3ba3c904e9dd15a2609ae943cddb6097912623ec54618c58386d6730ff742d746850400fb3cc"
+    "sha256=2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
+    "sha512=25b95d616f5d62d065c4458caa211c20615e1bf361fd13d6fd037c216b9566034b45581b7b1dfe43f051c3cdbcf5fe8ffb9c74b5974f2fb6204a3da11ea87c28"
   ]
 }
-x-commit-hash: "7cbb0e7277c6cacd1ccf7941cac5a03c25fc63cf"
+x-commit-hash: "b98be5f4c2bbac6f07ad0a9fa28de177f666b509"
diff --git a/esy.lock/opam/dune-configurator.3.11.1/opam b/esy.lock/opam/dune-configurator.3.13.1/opam
similarity index 75%
rename from esy.lock/opam/dune-configurator.3.11.1/opam
rename to esy.lock/opam/dune-configurator.3.13.1/opam
index 8ee593d1..6d8d3a41 100644
--- a/esy.lock/opam/dune-configurator.3.11.1/opam
+++ b/esy.lock/opam/dune-configurator.3.13.1/opam
@@ -41,10 +41,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz"
+    "https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz"
   checksum: [
-    "sha256=866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
-    "sha512=c888153b204a16bcfed2636de776bbd5f9ca84484e716cc1e9ef3ba3c904e9dd15a2609ae943cddb6097912623ec54618c58386d6730ff742d746850400fb3cc"
+    "sha256=2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
+    "sha512=25b95d616f5d62d065c4458caa211c20615e1bf361fd13d6fd037c216b9566034b45581b7b1dfe43f051c3cdbcf5fe8ffb9c74b5974f2fb6204a3da11ea87c28"
   ]
 }
-x-commit-hash: "7cbb0e7277c6cacd1ccf7941cac5a03c25fc63cf"
+x-commit-hash: "b98be5f4c2bbac6f07ad0a9fa28de177f666b509"
diff --git a/esy.lock/opam/dune-rpc.3.11.1/opam b/esy.lock/opam/dune-rpc.3.13.1/opam
similarity index 67%
rename from esy.lock/opam/dune-rpc.3.11.1/opam
rename to esy.lock/opam/dune-rpc.3.13.1/opam
index 9ec69814..af447830 100644
--- a/esy.lock/opam/dune-rpc.3.11.1/opam
+++ b/esy.lock/opam/dune-rpc.3.13.1/opam
@@ -14,7 +14,7 @@ depends: [
   "dyn"
   "xdg"
   "stdune" {= version}
-  "pp" {>= "1.1.0"}
+  "pp" {>= "1.1.0" & < "2.0.0"}
   "odoc" {with-doc}
 ]
 dev-repo: "git+https://github.com/ocaml/dune.git"
@@ -35,10 +35,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz"
+    "https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz"
   checksum: [
-    "sha256=866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
-    "sha512=c888153b204a16bcfed2636de776bbd5f9ca84484e716cc1e9ef3ba3c904e9dd15a2609ae943cddb6097912623ec54618c58386d6730ff742d746850400fb3cc"
+    "sha256=2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
+    "sha512=25b95d616f5d62d065c4458caa211c20615e1bf361fd13d6fd037c216b9566034b45581b7b1dfe43f051c3cdbcf5fe8ffb9c74b5974f2fb6204a3da11ea87c28"
   ]
 }
-x-commit-hash: "7cbb0e7277c6cacd1ccf7941cac5a03c25fc63cf"
+x-commit-hash: "b98be5f4c2bbac6f07ad0a9fa28de177f666b509"
diff --git a/esy.lock/opam/dyn.3.11.1/opam b/esy.lock/opam/dyn.3.13.1/opam
similarity index 65%
rename from esy.lock/opam/dyn.3.11.1/opam
rename to esy.lock/opam/dyn.3.13.1/opam
index 30ca00c8..8e9bb5a5 100644
--- a/esy.lock/opam/dyn.3.11.1/opam
+++ b/esy.lock/opam/dyn.3.13.1/opam
@@ -11,7 +11,7 @@ depends: [
   "dune" {>= "3.5"}
   "ocaml" {>= "4.08.0"}
   "ordering" {= version}
-  "pp" {>= "1.1.0"}
+  "pp" {>= "1.1.0" & < "2.0.0"}
   "odoc" {with-doc}
 ]
 dev-repo: "git+https://github.com/ocaml/dune.git"
@@ -32,10 +32,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz"
+    "https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz"
   checksum: [
-    "sha256=866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
-    "sha512=c888153b204a16bcfed2636de776bbd5f9ca84484e716cc1e9ef3ba3c904e9dd15a2609ae943cddb6097912623ec54618c58386d6730ff742d746850400fb3cc"
+    "sha256=2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
+    "sha512=25b95d616f5d62d065c4458caa211c20615e1bf361fd13d6fd037c216b9566034b45581b7b1dfe43f051c3cdbcf5fe8ffb9c74b5974f2fb6204a3da11ea87c28"
   ]
 }
-x-commit-hash: "7cbb0e7277c6cacd1ccf7941cac5a03c25fc63cf"
+x-commit-hash: "b98be5f4c2bbac6f07ad0a9fa28de177f666b509"
diff --git a/esy.lock/opam/either.1.0.0/opam b/esy.lock/opam/either.1.0.0/opam
index 651c06e4..a368c2da 100644
--- a/esy.lock/opam/either.1.0.0/opam
+++ b/esy.lock/opam/either.1.0.0/opam
@@ -13,6 +13,7 @@ doc: "https://mirage.github.io/either"
 bug-reports: "https://github.com/mirage/either/issues"
 depends: [
   "dune" {>= "2.0"}
+  "ocaml"
 ]
 build: [
   ["dune" "subst"] {dev}
diff --git a/esy.lock/opam/fiber.3.7.0/opam b/esy.lock/opam/fiber.3.7.0/opam
index 6a402766..fbf728c3 100644
--- a/esy.lock/opam/fiber.3.7.0/opam
+++ b/esy.lock/opam/fiber.3.7.0/opam
@@ -8,7 +8,7 @@ bug-reports: "https://github.com/ocaml-dune/fiber/issues"
 depends: [
   "dune" {>= "3.6"}
   "ocaml" {>= "4.08"}
-  "ppx_expect" {with-test}
+  "ppx_expect" {with-test & < "v0.17"}
   "dyn"
   "stdune"
   "odoc" {with-doc}
diff --git a/esy.lock/opam/fpath.0.7.3/opam b/esy.lock/opam/fpath.0.7.3/opam
index ae3336e4..62b86304 100644
--- a/esy.lock/opam/fpath.0.7.3/opam
+++ b/esy.lock/opam/fpath.0.7.3/opam
@@ -31,6 +31,11 @@ license.
 [astring]: http://erratique.ch/software/astring
 """
 url {
-archive: "https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz"
-checksum: "0740b530e8fed5b0adc5eee8463cfc2f"
+  src: "https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz"
+  checksum: [
+    "sha256=12b08ff192d037d9b6d69e9ca19d1d385184f20b3237c27231e437ac81ace70f"
+    "md5=0740b530e8fed5b0adc5eee8463cfc2f"
+  ]
 }
+
+x-maintenance-intent: ["(latest)"]
\ No newline at end of file
diff --git a/esy.lock/opam/gen.1.1/opam b/esy.lock/opam/gen.1.1/opam
index 30e8e332..cf9ae07c 100644
--- a/esy.lock/opam/gen.1.1/opam
+++ b/esy.lock/opam/gen.1.1/opam
@@ -11,7 +11,7 @@ depends: [
   "dune" {>= "1.1"}
   "seq"
   "odoc" {with-doc}
-  "qcheck" {with-test}
+  "qcheck" {with-test & >= "0.9"}
   "qtest" {with-test}
   "ounit2" {with-test}
   "ocaml" { >= "4.03.0" }
diff --git a/esy.lock/opam/js_of_ocaml-compiler.5.4.0/opam b/esy.lock/opam/js_of_ocaml-compiler.5.8.2/opam
similarity index 76%
rename from esy.lock/opam/js_of_ocaml-compiler.5.4.0/opam
rename to esy.lock/opam/js_of_ocaml-compiler.5.8.2/opam
index d25dd008..2eb7b4c5 100644
--- a/esy.lock/opam/js_of_ocaml-compiler.5.4.0/opam
+++ b/esy.lock/opam/js_of_ocaml-compiler.5.8.2/opam
@@ -12,10 +12,10 @@ doc: "https://ocsigen.org/js_of_ocaml/latest/manual/overview"
 bug-reports: "https://github.com/ocsigen/js_of_ocaml/issues"
 depends: [
   "dune" {>= "3.7"}
-  "ocaml" {>= "4.08" & < "5.2"}
+  "ocaml" {>= "4.08" & < "5.3"}
   "num" {with-test}
   "ppx_expect" {>= "v0.14.2" & with-test}
-  "ppxlib" {>= "0.15.0"}
+  "ppxlib" {>= "0.15.0" & < "0.36.0"}
   "re" {with-test}
   "cmdliner" {>= "1.1.0"}
   "sedlex" {>= "2.3"}
@@ -46,10 +46,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocsigen/js_of_ocaml/releases/download/5.4.0/js_of_ocaml-5.4.0.tbz"
+    "https://github.com/ocsigen/js_of_ocaml/releases/download/5.8.2/js_of_ocaml-5.8.2.tbz"
   checksum: [
-    "sha256=f1215de133867fefdb16e2798a225ee0446469a57462af0deebdd22d2a8d3b94"
-    "sha512=610cd22818bc6f0a0163f0eec74f58338e18709a6101639f65e58241a9216ed286c3cb091b41e36a82c926de5f030d718a6e76a493e885e61456047a8da153c9"
+    "sha256=7220194bd2f9b14d958153a5a206750359d7b49de12fe88d7450d385cecbf04a"
+    "sha512=1a282bf88eba8489747f51e228385be8d926e5c57efe33ad6f324c30fbe4100e99970192284172b5cdef92922ca613968bf116eb706194a879899baddd0a47f4"
   ]
 }
-x-commit-hash: "705b9e39bfb6ab22afbb606dc85c81d1c30faff4"
+x-commit-hash: "519dc5c222767680d69f32221aefa88f19aee5a8"
diff --git a/esy.lock/opam/menhir.20230608/opam b/esy.lock/opam/menhir.20240715/opam
similarity index 69%
rename from esy.lock/opam/menhir.20230608/opam
rename to esy.lock/opam/menhir.20240715/opam
index 994e202c..b27bf538 100644
--- a/esy.lock/opam/menhir.20230608/opam
+++ b/esy.lock/opam/menhir.20240715/opam
@@ -17,13 +17,14 @@ depends: [
   "dune" {>= "2.8.0"}
   "menhirLib" {= version}
   "menhirSdk" {= version}
+  "menhirCST" {= version}
 ]
 synopsis: "An LR(1) parser generator"
 url {
   src:
-    "https://gitlab.inria.fr/fpottier/menhir/-/archive/20230608/archive.tar.gz"
+    "https://gitlab.inria.fr/fpottier/menhir/-/archive/20240715/archive.tar.gz"
   checksum: [
-    "md5=8ff26b1e3685c472b7b3aba2fe938a43"
-    "sha512=334b9dcb1283a28b8547082a89536b1d439ff588290b8eaecdf4802c5f74dbc8d16ad6fc6c0820036183518d83e2cc273a75787a8b41137424c8e7ee82e2b50a"
+    "md5=d39a8943fe1be28199e5ec1f4133504c"
+    "sha512=4f933cfc9026f5f2ffda9b0e626862560a233c35ecf097d179edd926d9009bdf46b6611294aea02b63c34427348568f37376a033fbe8cf98a7746fa6f1354dbd"
   ]
 }
diff --git a/esy.lock/opam/menhirCST.20240715/opam b/esy.lock/opam/menhirCST.20240715/opam
new file mode 100644
index 00000000..381585e9
--- /dev/null
+++ b/esy.lock/opam/menhirCST.20240715/opam
@@ -0,0 +1,29 @@
+
+opam-version: "2.0"
+maintainer: "francois.pottier@inria.fr"
+authors: [
+  "François Pottier <francois.pottier@inria.fr>"
+]
+homepage: "http://gitlab.inria.fr/fpottier/menhir"
+dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"
+bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"
+license: "LGPL-2.0-only WITH OCaml-LGPL-linking-exception"
+build: [
+  ["dune" "build" "-p" name "-j" jobs]
+]
+depends: [
+  "ocaml"  { >= "4.08" }
+  "dune"   { >= "2.8.0"  }
+]
+conflicts: [
+  "menhir" { != version  }
+]
+synopsis: "Runtime support library for parsers generated by Menhir"
+url {
+  src:
+    "https://gitlab.inria.fr/fpottier/menhir/-/archive/20240715/archive.tar.gz"
+  checksum: [
+    "md5=d39a8943fe1be28199e5ec1f4133504c"
+    "sha512=4f933cfc9026f5f2ffda9b0e626862560a233c35ecf097d179edd926d9009bdf46b6611294aea02b63c34427348568f37376a033fbe8cf98a7746fa6f1354dbd"
+  ]
+}
diff --git a/esy.lock/opam/menhirLib.20230608/opam b/esy.lock/opam/menhirLib.20240715/opam
similarity index 67%
rename from esy.lock/opam/menhirLib.20230608/opam
rename to esy.lock/opam/menhirLib.20240715/opam
index a83c2db7..14b68d29 100644
--- a/esy.lock/opam/menhirLib.20230608/opam
+++ b/esy.lock/opam/menhirLib.20240715/opam
@@ -8,7 +8,7 @@ authors: [
 homepage: "http://gitlab.inria.fr/fpottier/menhir"
 dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"
 bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"
-license: "LGPL-2.0-only with OCaml-LGPL-linking-exception"
+license: "LGPL-2.0-only WITH OCaml-LGPL-linking-exception"
 build: [
   ["dune" "build" "-p" name "-j" jobs]
 ]
@@ -22,9 +22,9 @@ conflicts: [
 synopsis: "Runtime support library for parsers generated by Menhir"
 url {
   src:
-    "https://gitlab.inria.fr/fpottier/menhir/-/archive/20230608/archive.tar.gz"
+    "https://gitlab.inria.fr/fpottier/menhir/-/archive/20240715/archive.tar.gz"
   checksum: [
-    "md5=8ff26b1e3685c472b7b3aba2fe938a43"
-    "sha512=334b9dcb1283a28b8547082a89536b1d439ff588290b8eaecdf4802c5f74dbc8d16ad6fc6c0820036183518d83e2cc273a75787a8b41137424c8e7ee82e2b50a"
+    "md5=d39a8943fe1be28199e5ec1f4133504c"
+    "sha512=4f933cfc9026f5f2ffda9b0e626862560a233c35ecf097d179edd926d9009bdf46b6611294aea02b63c34427348568f37376a033fbe8cf98a7746fa6f1354dbd"
   ]
 }
diff --git a/esy.lock/opam/menhirSdk.20230608/opam b/esy.lock/opam/menhirSdk.20240715/opam
similarity index 67%
rename from esy.lock/opam/menhirSdk.20230608/opam
rename to esy.lock/opam/menhirSdk.20240715/opam
index 892f0922..d99be8a3 100644
--- a/esy.lock/opam/menhirSdk.20230608/opam
+++ b/esy.lock/opam/menhirSdk.20240715/opam
@@ -8,7 +8,7 @@ authors: [
 homepage: "http://gitlab.inria.fr/fpottier/menhir"
 dev-repo: "git+https://gitlab.inria.fr/fpottier/menhir.git"
 bug-reports: "https://gitlab.inria.fr/fpottier/menhir/-/issues"
-license: "LGPL-2.0-only with OCaml-LGPL-linking-exception"
+license: "LGPL-2.0-only WITH OCaml-LGPL-linking-exception"
 build: [
   ["dune" "build" "-p" name "-j" jobs]
 ]
@@ -22,9 +22,9 @@ conflicts: [
 synopsis: "Compile-time library for auxiliary tools related to Menhir"
 url {
   src:
-    "https://gitlab.inria.fr/fpottier/menhir/-/archive/20230608/archive.tar.gz"
+    "https://gitlab.inria.fr/fpottier/menhir/-/archive/20240715/archive.tar.gz"
   checksum: [
-    "md5=8ff26b1e3685c472b7b3aba2fe938a43"
-    "sha512=334b9dcb1283a28b8547082a89536b1d439ff588290b8eaecdf4802c5f74dbc8d16ad6fc6c0820036183518d83e2cc273a75787a8b41137424c8e7ee82e2b50a"
+    "md5=d39a8943fe1be28199e5ec1f4133504c"
+    "sha512=4f933cfc9026f5f2ffda9b0e626862560a233c35ecf097d179edd926d9009bdf46b6611294aea02b63c34427348568f37376a033fbe8cf98a7746fa6f1354dbd"
   ]
 }
diff --git a/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam b/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam
index 14c9f753..a2df8c61 100644
--- a/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam
+++ b/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam
@@ -10,7 +10,7 @@ homepage: "https://github.com/janestreet/ocaml-compiler-libs"
 bug-reports: "https://github.com/janestreet/ocaml-compiler-libs/issues"
 depends: [
   "dune" {>= "2.8"}
-  "ocaml" {>= "4.04.1"}
+  "ocaml" {>= "4.04.1" & < "5.2.0"}
   "odoc" {with-doc}
 ]
 build: [
diff --git a/esy.lock/opam/ocaml-lsp-server.1.12.4/opam b/esy.lock/opam/ocaml-lsp-server.1.12.2/opam
similarity index 73%
rename from esy.lock/opam/ocaml-lsp-server.1.12.4/opam
rename to esy.lock/opam/ocaml-lsp-server.1.12.2/opam
index 44bd9a0d..a38b9804 100644
--- a/esy.lock/opam/ocaml-lsp-server.1.12.4/opam
+++ b/esy.lock/opam/ocaml-lsp-server.1.12.2/opam
@@ -18,12 +18,11 @@ license: "ISC"
 homepage: "https://github.com/ocaml/ocaml-lsp"
 bug-reports: "https://github.com/ocaml/ocaml-lsp/issues"
 depends: [
-  "dune" {>= "3.0"}
+  "dune" {>= "2.9"}
   "yojson"
   "re" {>= "1.5.0"}
   "ppx_yojson_conv_lib" {>= "v0.14"}
   "dune-rpc"
-  "chrome-trace" {>= "3.3.0"}
   "dyn"
   "stdune"
   "fiber" {>= "3.1.1"}
@@ -31,7 +30,7 @@ depends: [
   "ordering"
   "dune-build-info"
   "spawn"
-  "omd" {>= "1.3.2" & < "2.0.0~alpha1"}
+  "omd" {<= "1.3.1"}
   "octavius" {>= "1.2.2"}
   "uutf" {>= "1.0.2"}
   "pp" {>= "1.1.2"}
@@ -54,10 +53,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocaml/ocaml-lsp/releases/download/1.12.4/lsp-1.12.4.tbz"
+    "https://github.com/ocaml/ocaml-lsp/releases/download/1.12.2/lsp-1.12.2.tbz"
   checksum: [
-    "sha256=919b98027cbc56359dabe8a911d3d24d1706cea8cd04e8173a2d1d3b06f9d846"
-    "sha512=68898112f13b7ee13040933ed95597e59f83e42ac9d6ead375baa2d1248b1614b5b80ae5e0d839f7f5a8372fd1f47e6bf308d331ca1df90cb4b9927825f89635"
+    "sha256=cf25c8587c848aa913a5e5cc6417e95901be58623c049116e733d8473597dd39"
+    "sha512=b5aa4278006a0ed8dac3fb18a331c18c5e877c5910165b34e32a1ba346951bf234864ff2b53d58191130b38e07dadaab9778e6bfb2bce351ba98c54c09d6028e"
   ]
 }
-x-commit-hash: "f53ad362aa2c47216dd96d32b22bb95ee3e774e4"
+x-commit-hash: "bc3e9c298185fdcb3b80d2d89562b586ba21eb74"
diff --git a/esy.lock/opam/ocamlbuild.0.14.2+win/opam b/esy.lock/opam/ocamlbuild.0.14.2+win/opam
deleted file mode 100644
index 19651dfb..00000000
--- a/esy.lock/opam/ocamlbuild.0.14.2+win/opam
+++ /dev/null
@@ -1,38 +0,0 @@
-opam-version: "2.0"
-synopsis:
-  "OCamlbuild is a build system with builtin rules to easily build most OCaml projects"
-maintainer: "Gabriel Scherer <gabriel.scherer@gmail.com>"
-authors: ["Nicolas Pouillard" "Berke Durak"]
-license: "LGPL-2.0-or-later WITH OCaml-LGPL-linking-exception"
-homepage: "https://github.com/ocaml/ocamlbuild/"
-doc: "https://github.com/ocaml/ocamlbuild/blob/master/manual/manual.adoc"
-bug-reports: "https://github.com/ocaml/ocamlbuild/issues"
-depends: [
-  "ocaml" {>= "4.03"}
-]
-conflicts: [
-  "base-ocamlbuild"
-  "ocamlfind" {< "1.6.2"}
-]
-build: [
-  [make "all"]
-]
-install: [
-  [make "install"]
-  ["mkdir" "-p" "%{lib}%/ocamlbuild"]
-  ["install" "-m" "0644" "META" "%{lib}%/ocamlbuild"]
-]
-dev-repo: "git+https://github.com/ocaml/ocamlbuild.git"
-url {
-  src: "https://github.com/ocaml/ocamlbuild/archive/refs/tags/0.14.2.tar.gz"
-  checksum: [
-    "md5=2f407fadd57b073155a6aead887d9676"
-    "sha512=f568bf10431a1f701e8bd7554dc662400a0d978411038bbad93d44dceab02874490a8a5886a9b44e017347e7949997f13f5c3752f74e1eb5e273d2beb19a75fd"
-  ]
-}
-extra-source "ocamlbuild-0.14.2.patch" {
-  src: "https://raw.githubusercontent.com/ocaml-opam/opam-repository-mingw/354a87b397856f2a70024c5c83fc5001074935b6/packages/ocamlbuild/ocamlbuild.0.14.2/files/ocamlbuild-0.14.2.patch"
-  checksum: "sha256=a9b7e1829a3304e5a073d8ddea29d3d8272698e93b7e1ee659ae5e31e5cfb6b9"
-}
-patches: "ocamlbuild-0.14.2.patch"
-available: os = "win32"
diff --git a/esy.lock/opam/ocamlbuild.0.16.1/opam b/esy.lock/opam/ocamlbuild.0.16.1/opam
new file mode 100644
index 00000000..83ff5735
--- /dev/null
+++ b/esy.lock/opam/ocamlbuild.0.16.1/opam
@@ -0,0 +1,44 @@
+opam-version: "2.0"
+maintainer: "Gabriel Scherer <gabriel.scherer@gmail.com>"
+authors: ["Nicolas Pouillard" "Berke Durak"]
+homepage: "https://github.com/ocaml/ocamlbuild/"
+bug-reports: "https://github.com/ocaml/ocamlbuild/issues"
+license: "LGPL-2.0-or-later WITH OCaml-LGPL-linking-exception"
+doc: "https://github.com/ocaml/ocamlbuild/blob/master/manual/manual.adoc"
+dev-repo: "git+https://github.com/ocaml/ocamlbuild.git"
+synopsis:
+  "OCamlbuild is a build system with builtin rules to easily build most OCaml projects"
+
+build: [
+  [
+    make
+    "-f"
+    "configure.make"
+    "all"
+    "OCAMLBUILD_PREFIX=%{prefix}%"
+    "OCAMLBUILD_BINDIR=%{bin}%"
+    "OCAMLBUILD_LIBDIR=%{lib}%"
+    "OCAMLBUILD_MANDIR=%{man}%"
+    "OCAML_NATIVE=%{ocaml:native}%"
+    "OCAML_NATIVE_TOOLS=%{ocaml:native}%"
+  ]
+  [make "check-if-preinstalled" "all" "opam-install"]
+]
+
+conflicts: [
+  "base-ocamlbuild"
+  "ocamlfind" {< "1.6.2"}
+]
+
+depends: [
+  "ocaml" {>= "4.08"}
+  "ocamlfind" {with-test}
+  "menhirLib" {with-test}
+]
+
+url {
+  src: "https://github.com/ocaml/ocamlbuild/archive/refs/tags/0.16.1.tar.gz"
+  checksum: [
+    "sha512=e918b9a0081f271e507c7a4f4d5d5a7cdf818ca51c52acec1bac85ddad5f6cad078cb3c568252fbcf5401c2d75323ed8f50fdd881bda1c9632840320408393ae"
+  ]
+}
diff --git a/esy.lock/opam/ocamlfind.1.9.6/files/0001-Harden-test-for-OCaml-5.patch b/esy.lock/opam/ocamlfind.1.9.6/files/0001-Harden-test-for-OCaml-5.patch
deleted file mode 100644
index 8011238c..00000000
--- a/esy.lock/opam/ocamlfind.1.9.6/files/0001-Harden-test-for-OCaml-5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -294,7 +294,7 @@
-     # If findlib has been configured -sitelib $(ocamlc -where) then there's
-     # nothing to do, but otherwise we need to put OCaml's Standard Library
-     # into the path setting.
--    if [ ! -e "${ocaml_sitelib}/stdlib/META" ]; then
-+    if [ ! -e "${ocaml_sitelib}/stdlib.cmi" ]; then
-         ocamlpath="${ocaml_core_stdlib}${path_sep}${ocamlpath}"
-     fi
- fi
diff --git a/esy.lock/opam/ocamlfind.1.9.6/opam b/esy.lock/opam/ocamlfind.1.9.8/opam
similarity index 62%
rename from esy.lock/opam/ocamlfind.1.9.6/opam
rename to esy.lock/opam/ocamlfind.1.9.8/opam
index a81f0c50..d9fe3931 100644
--- a/esy.lock/opam/ocamlfind.1.9.6/opam
+++ b/esy.lock/opam/ocamlfind.1.9.8/opam
@@ -1,15 +1,14 @@
 opam-version: "2.0"
 synopsis: "A library manager for OCaml"
-description: """
+description: """\
 Findlib is a library manager for OCaml. It provides a convention how
 to store libraries, and a file format ("META") to describe the
 properties of libraries. There is also a tool (ocamlfind) for
 interpreting the META files, so that it is very easy to use libraries
-in programs and scripts.
-"""
-license: "MIT"
+in programs and scripts."""
 maintainer: "Thomas Gazagnaire <thomas@gazagnaire.org>"
 authors: "Gerd Stolpmann <gerd@gerd-stolpmann.de>"
+license: "MIT"
 homepage: "http://projects.camlcity.org/projects/findlib.html"
 bug-reports: "https://github.com/ocaml/ocamlfind/issues"
 depends: [
@@ -19,10 +18,14 @@ depopts: ["graphics"]
 build: [
   [
     "./configure"
-    "-bindir" bin
-    "-sitelib" lib
-    "-mandir" man
-    "-config" "%{lib}%/findlib.conf"
+    "-bindir"
+    bin
+    "-sitelib"
+    lib
+    "-mandir"
+    man
+    "-config"
+    "%{lib}%/findlib.conf"
     "-no-custom"
     "-no-camlp4" {!ocaml:preinstalled & ocaml:version >= "4.02.0"}
     "-no-topfind" {ocaml:preinstalled}
@@ -34,15 +37,12 @@ install: [
   [make "install"]
   ["install" "-m" "0755" "ocaml-stub" "%{bin}%/ocaml"] {ocaml:preinstalled}
 ]
-extra-files: ["0001-Harden-test-for-OCaml-5.patch" "md5=3cddbf72164c29d4e50e077a92a37c6c"]
-# See https://github.com/ocaml/ocamlfind/pull/61
-patches: ["0001-Harden-test-for-OCaml-5.patch"]
 dev-repo: "git+https://github.com/ocaml/ocamlfind.git"
 url {
-  src: "http://download.camlcity.org/download/findlib-1.9.6.tar.gz"
+  src:
+    "https://github.com/ocaml/ocamlfind/archive/refs/tags/findlib-1.9.8.tar.gz"
   checksum: [
-    "md5=96c6ee50a32cca9ca277321262dbec57"
-    "sha512=cfaf1872d6ccda548f07d32cc6b90c3aafe136d2aa6539e03143702171ee0199add55269bba894c77115535dc46a5835901a5d7c75768999e72db503bfd83027"
+    "md5=ca770e5806032a96131b670f6e07f146"
+    "sha512=8967986de2ab4ec5993f437b0a4206742adf37aa7a292a3bba0a04438d78539b84d001191e60b2d5bde98a695b38cba2593b7051f7749adbdb964a0df3c4b661"
   ]
-}
-available: os != "win32"
+}
\ No newline at end of file
diff --git a/esy.lock/opam/ocamlformat-rpc-lib.0.26.1/opam b/esy.lock/opam/ocamlformat-rpc-lib.0.27.0/opam
similarity index 78%
rename from esy.lock/opam/ocamlformat-rpc-lib.0.26.1/opam
rename to esy.lock/opam/ocamlformat-rpc-lib.0.27.0/opam
index e685d68a..9b9c3ed4 100644
--- a/esy.lock/opam/ocamlformat-rpc-lib.0.26.1/opam
+++ b/esy.lock/opam/ocamlformat-rpc-lib.0.27.0/opam
@@ -40,10 +40,10 @@ build: [
 dev-repo: "git+https://github.com/ocaml-ppx/ocamlformat.git"
 url {
   src:
-    "https://github.com/ocaml-ppx/ocamlformat/releases/download/0.26.1/ocamlformat-0.26.1.tbz"
+    "https://github.com/ocaml-ppx/ocamlformat/releases/download/0.27.0/ocamlformat-0.27.0.tbz"
   checksum: [
-    "sha256=da006e427f15b9ec612fb808d446599bd9b7c3ee25abeb3d555747a70d74c6d7"
-    "sha512=b7413f8dc47ba3a2372e89d59cae54f9a602ab81e31cd14ed986a831111080b79a5a3cc45dac04d8ffae5054c35bf29fe9559f145c76c87a30e191ed5400942a"
+    "sha256=ddbf484c076d08f99400ee84b790ec231f5c8fcbd5d3324a6400d5388e846d15"
+    "sha512=4d2a8965a7b7ad45f8f4e76c01cf38bfa68462b07dfa7bdb2db23bd3e3017b214e6780f036679fa8595dde4167a01d957e3af8837274320449014e306773f917"
   ]
 }
-x-commit-hash: "6734dfc1992eb782f0a936ce3cd7c78b7c1d39d3"
+x-commit-hash: "5bac2e7f71d9b0a06bd1908dda9b13da1649eee1"
diff --git a/esy.lock/opam/ocamlformat.0.24.1/opam b/esy.lock/opam/ocamlformat.0.24.1/opam
index 55a959bc..6648f324 100644
--- a/esy.lock/opam/ocamlformat.0.24.1/opam
+++ b/esy.lock/opam/ocamlformat.0.24.1/opam
@@ -7,9 +7,9 @@ authors: ["Josh Berdine <jjb@fb.com>"]
 homepage: "https://github.com/ocaml-ppx/ocamlformat"
 bug-reports: "https://github.com/ocaml-ppx/ocamlformat/issues"
 depends: [
-  "ocaml" {>= "4.08"}
+  "ocaml" {>= "4.08" & < "5.2"}
   "alcotest" {with-test}
-  "base" {>= "v0.12.0"}
+  "base" {>= "v0.12.0" & < "v0.17.0"}
   "cmdliner" {>= "1.1.0"}
   "dune" {>= "2.8"}
   "dune-build-info"
diff --git a/esy.lock/opam/octavius.1.2.2/opam b/esy.lock/opam/octavius.1.2.2/opam
index 0539c097..e67874dc 100644
--- a/esy.lock/opam/octavius.1.2.2/opam
+++ b/esy.lock/opam/octavius.1.2.2/opam
@@ -29,5 +29,8 @@ synopsis: "Ocamldoc comment syntax parser"
 description: "Octavius is a library to parse the `ocamldoc` comment syntax."
 url {
   src: "https://github.com/ocaml-doc/octavius/archive/v1.2.2.tar.gz"
-  checksum: "md5=72f9e1d996e6c5089fc513cc9218607b"
+  checksum: [
+    "sha256=eac9104ce0316b69da9c44b9c477700fe0b52a888c89ce4bdf1d2b782a73e0ad"
+    "md5=72f9e1d996e6c5089fc513cc9218607b"
+  ]
 }
diff --git a/esy.lock/opam/omd.1.3.1/opam b/esy.lock/opam/omd.1.3.1/opam
new file mode 100644
index 00000000..5b198008
--- /dev/null
+++ b/esy.lock/opam/omd.1.3.1/opam
@@ -0,0 +1,42 @@
+opam-version: "2.0"
+maintainer: "Philippe Wang <philippe.wang@gmail.com>"
+authors: [ "Philippe Wang <philippe.wang@gmail.com>" ]
+license: "ISC"
+homepage: "https://github.com/ocaml/omd"
+dev-repo: "git+https://github.com/ocaml/omd.git"
+bug-reports: "https://github.com/ocaml/omd/issues"
+tags: [ "org:ocamllabs" "org:mirage"  ]
+build: [
+  ["ocaml" "setup.ml" "-configure" "--prefix" prefix]
+  ["ocaml" "setup.ml" "-build"]
+  ["ocaml" "setup.ml" "-configure" "--enable-tests"] {with-test}
+  ["ocaml" "setup.ml" "-build"] {with-test}
+  ["ocaml" "setup.ml" "-test"] {with-test}
+]
+install: ["ocaml" "setup.ml" "-install"]
+remove: [
+  ["ocaml" "%{etc}%/omd/setup.ml" "-C" "%{etc}%/omd" "-uninstall"]
+]
+depends: [
+  "ocaml" {>= "4.01" & < "5.0.0"}
+  "base-bigarray"
+  "base-bytes"
+  "ocamlbuild" {build}
+  "ocamlfind" {build & >= "1.5"}
+]
+synopsis: "A Markdown frontend in pure OCaml."
+description: """
+This Markdown library is implemented using only pure OCaml (including
+I/O operations provided by the standard OCaml compiler distribution).
+OMD is meant to be as faithful as possible to the original Markdown.
+Additionally, OMD implements a few Github markdown features, an
+extension mechanism, and some other features. Note that the opam
+package installs both the OMD library and the command line tool `omd`."""
+url {
+  src:
+    "https://github.com/Chris00/omd/releases/download/1.3.1/omd-1.3.1.tar.gz"
+  checksum: [
+    "sha256=8aef085a98c38a20483f953f7ba5fe15d712290b095624af3d7999d4ef7fede9"
+    "md5=845fc38e86ec0e85721130f2dd044d00"
+  ]
+}
diff --git a/esy.lock/opam/omd.1.3.2/opam b/esy.lock/opam/omd.1.3.2/opam
deleted file mode 100644
index ad2e5014..00000000
--- a/esy.lock/opam/omd.1.3.2/opam
+++ /dev/null
@@ -1,50 +0,0 @@
-opam-version: "2.0"
-synopsis: "A Markdown frontend in pure OCaml"
-description: """
-This Markdown library is implemented using only pure OCaml (including
-I/O operations provided by the standard OCaml compiler distribution).
-OMD is meant to be as faithful as possible to the original Markdown.
-Additionally, OMD implements a few Github markdown features, an
-extension mechanism, and some other features. Note that the opam
-package installs both the OMD library and the command line tool `omd`."""
-maintainer: [
-  "Shon Feder <shon.feder@gmail.com>" "Raphael Sousa Santos <@sonologico>"
-]
-authors: [
-  "Philippe Wang <philippe.wang@gmail.com>"
-  "Nicolás Ojeda Bär <n.oje.bar@gmail.com>"
-]
-license: "ISC"
-tags: ["org:ocamllabs" "org:mirage"]
-homepage: "https://github.com/ocaml/omd"
-bug-reports: "https://github.com/ocaml/omd/issues"
-depends: [
-  "dune" {>= "2.7"}
-  "ocaml" {>= "4.04"}
-  "base-bigarray"
-  "base-bytes"
-  "odoc" {with-doc}
-]
-build: [
-  ["dune" "subst"] {dev}
-  [
-    "dune"
-    "build"
-    "-p"
-    name
-    "-j"
-    jobs
-    "@install"
-    "@runtest" {with-test}
-    "@doc" {with-doc}
-  ]
-]
-dev-repo: "git+https://github.com/ocaml/omd.git"
-url {
-  src: "https://github.com/ocaml/omd/releases/download/1.3.2/omd-1.3.2.tbz"
-  checksum: [
-    "sha256=6023e1642631f08f678eb5725820879ed7bb5a3ffee777cdedebc28c1f85fadb"
-    "sha512=fa2070a5f5d30b2cc422937ac4158bb087134a69d47fa15df403afb1c0c60a73dd436c949faa8d44e0b65bdee039779d86191b55085b717253f91ef20a69ef98"
-  ]
-}
-x-commit-hash: "bc6c0d568b90b61143e9863cb6ef7b3989b3313a"
diff --git a/esy.lock/opam/ordering.3.11.1/opam b/esy.lock/opam/ordering.3.13.1/opam
similarity index 66%
rename from esy.lock/opam/ordering.3.11.1/opam
rename to esy.lock/opam/ordering.3.13.1/opam
index 5416c807..1948915e 100644
--- a/esy.lock/opam/ordering.3.11.1/opam
+++ b/esy.lock/opam/ordering.3.13.1/opam
@@ -30,10 +30,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz"
+    "https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz"
   checksum: [
-    "sha256=866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
-    "sha512=c888153b204a16bcfed2636de776bbd5f9ca84484e716cc1e9ef3ba3c904e9dd15a2609ae943cddb6097912623ec54618c58386d6730ff742d746850400fb3cc"
+    "sha256=2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
+    "sha512=25b95d616f5d62d065c4458caa211c20615e1bf361fd13d6fd037c216b9566034b45581b7b1dfe43f051c3cdbcf5fe8ffb9c74b5974f2fb6204a3da11ea87c28"
   ]
 }
-x-commit-hash: "7cbb0e7277c6cacd1ccf7941cac5a03c25fc63cf"
+x-commit-hash: "b98be5f4c2bbac6f07ad0a9fa28de177f666b509"
diff --git a/esy.lock/opam/ppx_derivers.1.2.1/opam b/esy.lock/opam/ppx_derivers.1.2.1/opam
index 484b2654..d06e23b2 100644
--- a/esy.lock/opam/ppx_derivers.1.2.1/opam
+++ b/esy.lock/opam/ppx_derivers.1.2.1/opam
@@ -19,5 +19,8 @@ ppx_deriving and ppx_type_conv to inter-operate gracefully when linked
 as part of the same ocaml-migrate-parsetree driver."""
 url {
   src: "https://github.com/ocaml-ppx/ppx_derivers/archive/1.2.1.tar.gz"
-  checksum: "md5=5dc2bf130c1db3c731fe0fffc5648b41"
+  checksum: [
+    "sha256=b6595ee187dea792b31fc54a0e1524ab1e48bc6068d3066c45215a138cc73b95"
+    "md5=5dc2bf130c1db3c731fe0fffc5648b41"
+  ]
 }
diff --git a/esy.lock/opam/ppxlib.0.29.1/opam b/esy.lock/opam/ppxlib.0.33.0/opam
similarity index 65%
rename from esy.lock/opam/ppxlib.0.29.1/opam
rename to esy.lock/opam/ppxlib.0.33.0/opam
index 0a04c32e..6de792ba 100644
--- a/esy.lock/opam/ppxlib.0.29.1/opam
+++ b/esy.lock/opam/ppxlib.0.33.0/opam
@@ -1,9 +1,9 @@
 opam-version: "2.0"
-synopsis: "Standard library for ppx rewriters"
+synopsis: "Standard infrastructure for ppx rewriters"
 description: """
-Ppxlib is the standard library for ppx rewriters and other programs
-that manipulate the in-memory representation of OCaml programs, a.k.a
-the "Parsetree".
+Ppxlib is the standard infrastructure for ppx rewriters
+and other programs that manipulate the in-memory representation of
+OCaml programs, a.k.a the "Parsetree".
 
 It also comes bundled with two ppx rewriters that are commonly used to
 write tools that manipulate and/or generate Parsetree values;
@@ -20,7 +20,7 @@ doc: "https://ocaml-ppx.github.io/ppxlib/"
 bug-reports: "https://github.com/ocaml-ppx/ppxlib/issues"
 depends: [
   "dune" {>= "2.7"}
-  "ocaml" {>= "4.04.1" & < "5.1.0"}
+  "ocaml" {>= "4.04.1" & < "5.3.0"}
   "ocaml-compiler-libs" {>= "v0.11.0"}
   "ppx_derivers" {>= "1.0"}
   "sexplib0" {>= "v0.12"}
@@ -29,12 +29,12 @@ depends: [
   "ocamlfind" {with-test}
   "re" {with-test & >= "1.9.0"}
   "cinaps" {with-test & >= "v0.12.1"}
-  "base" {with-test & < "v0.16.0" }
-  "stdio" {with-test}
   "odoc" {with-doc}
 ]
 conflicts: [
   "ocaml-migrate-parsetree" {< "2.0.0"}
+  "ocaml-base-compiler" {= "5.1.0~alpha1"}
+  "ocaml-variants" {= "5.1.0~alpha1+options"}
   "base-effects"
 ]
 build: [
@@ -54,10 +54,10 @@ build: [
 dev-repo: "git+https://github.com/ocaml-ppx/ppxlib.git"
 url {
   src:
-    "https://github.com/ocaml-ppx/ppxlib/releases/download/0.29.1/ppxlib-0.29.1.tbz"
+    "https://github.com/ocaml-ppx/ppxlib/releases/download/0.33.0/ppxlib-0.33.0.tbz"
   checksum: [
-    "sha256=c8ea8c8770414fdba6612e7f2d814b21a493daa974ea862a90c8e6c766e5dd79"
-    "sha512=edc468e9111cc26e31825e475fd72f55123a22fe86548e07e7d111796fecb8d60359b1b53c7eac383e5e2114cbae74dfd9c166f330e84cbeab4ddfd5797e322f"
+    "sha256=ffa44ef551f23b75e21dbd698a30310431381aaf140b9fe4b81c2e70a2d2c63a"
+    "sha512=cd865efc78e85d662fab3d05de7675a46252a241db44cbf13a930017c6890da5f161fbf8511b97abd9d61bffca0cb84b3adf580b55a3820afdb4a2337e9a4a63"
   ]
 }
-x-commit-hash: "36fcba0408b78963a730e0be92abdbab00b0ea26"
+x-commit-hash: "563d5651e877c6f7d5561f9d8ca93fca05b07d07"
diff --git a/esy.lock/opam/re.1.11.0/opam b/esy.lock/opam/re.1.12.0/opam
similarity index 71%
rename from esy.lock/opam/re.1.11.0/opam
rename to esy.lock/opam/re.1.12.0/opam
index 303af008..48eca0af 100644
--- a/esy.lock/opam/re.1.11.0/opam
+++ b/esy.lock/opam/re.1.12.0/opam
@@ -20,9 +20,9 @@ build: [
 ]
 
 depends: [
-  "ocaml" {>= "4.03"}
+  "ocaml" {>= "4.12"}
   "dune" {>= "2.0"}
-  "ounit" {with-test}
+  "ounit2" {with-test}
   "seq"
 ]
 
@@ -37,10 +37,10 @@ Pure OCaml regular expressions with:
 """
 url {
   src:
-    "https://github.com/ocaml/ocaml-re/releases/download/1.11.0/re-1.11.0.tbz"
+    "https://github.com/ocaml/ocaml-re/releases/download/1.12.0/re-1.12.0.tbz"
   checksum: [
-    "sha256=01fc244780c0f6be72ae796b1fb750f367de18624fd75d07ee79782ed6df8d4f"
-    "sha512=3e3712cc1266ec1f27620f3508ea2ebba338f4083b07d8a69dccee1facfdc1971a6c39f9deea664d2a62fd7f2cfd2eae816ca4c274acfadaee992a3befc4b757"
+    "sha256=a01f2bf22f72c2f4ababd8d3e7635e35c1bf6bc5a41ad6d5a007454ddabad1d4"
+    "sha512=f0726826e1e677f7ecdf447d46d814a11d3844ec6e5c0527be8c73c7afdb08aacfca47ea764eda325bcd7064aff07c1d3441c935ee5a0fc99ede8707f81a451d"
   ]
 }
-x-commit-hash: "2dd38515c76c40299596d39f18d9b9a20f00d788"
+x-commit-hash: "f09672608781dc05172ad980a6e9a483c3b9d534"
diff --git a/esy.lock/opam/result.1.5/opam b/esy.lock/opam/result.1.5/opam
index 6b7b68d7..da55ed46 100644
--- a/esy.lock/opam/result.1.5/opam
+++ b/esy.lock/opam/result.1.5/opam
@@ -18,5 +18,8 @@ Result module defined in this library."""
 url {
   src:
     "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz"
-  checksum: "md5=1b82dec78849680b49ae9a8a365b831b"
+  checksum: [
+    "sha256=7c3a5e238558f4c1a4f5acca816bc705a0e12f68dc0005c61ddbf2e6cab8ee32"
+    "md5=1b82dec78849680b49ae9a8a365b831b"
+  ]
 }
diff --git a/esy.lock/opam/sedlex.3.2/opam b/esy.lock/opam/sedlex.3.3/opam
similarity index 83%
rename from esy.lock/opam/sedlex.3.2/opam
rename to esy.lock/opam/sedlex.3.3/opam
index b978761c..89b5577a 100644
--- a/esy.lock/opam/sedlex.3.2/opam
+++ b/esy.lock/opam/sedlex.3.3/opam
@@ -17,7 +17,7 @@ bug-reports: "https://github.com/ocaml-community/sedlex/issues"
 depends: [
   "ocaml" {>= "4.08"}
   "dune" {>= "3.0"}
-  "ppxlib" {>= "0.26.0"}
+  "ppxlib" {>= "0.26.0" & < "0.36.0"}
   "gen"
   "ppx_expect" {with-test}
   "odoc" {with-doc}
@@ -40,9 +40,9 @@ dev-repo: "git+https://github.com/ocaml-community/sedlex.git"
 doc: "https://ocaml-community.github.io/sedlex/index.html"
 url {
   src:
-    "https://github.com/ocaml-community/sedlex/archive/refs/tags/v3.2.tar.gz"
+    "https://github.com/ocaml-community/sedlex/archive/refs/tags/v3.3.tar.gz"
   checksum: [
-    "md5=b67eec3a80a7fed8e6c91e47260b0843"
-    "sha512=00e257d1b97e99d49028d2e38b20a05c6aa151c362991c37c17522bf58c19e273b762ea39dd9783ed9ecc60d11dadeabb0487e16b4af91536e45e7e18c86cfe9"
+    "md5=4603d572e24f3515fe7e7d0b665bdda6"
+    "sha512=791b172b59256cb77df1bbd9e3136aa79e65bcb3df1f64bbe10933d624bad59a7d8b358c35abd07c267b89a3feb01f935e927ffc4fe9c6eb2ac6637cfa9b42cd"
   ]
 }
diff --git a/esy.lock/opam/seq.base/files/META.seq b/esy.lock/opam/seq.base/files/META.seq
deleted file mode 100644
index 06b95eff..00000000
--- a/esy.lock/opam/seq.base/files/META.seq
+++ /dev/null
@@ -1,4 +0,0 @@
-name="seq"
-version="[distributed with OCaml 4.07 or above]"
-description="dummy backward-compatibility package for iterators"
-requires=""
diff --git a/esy.lock/opam/seq.base/files/seq.install b/esy.lock/opam/seq.base/files/seq.install
deleted file mode 100644
index c4d70206..00000000
--- a/esy.lock/opam/seq.base/files/seq.install
+++ /dev/null
@@ -1,3 +0,0 @@
-lib:[
-  "META.seq" {"META"}
-]
diff --git a/esy.lock/opam/seq.base/opam b/esy.lock/opam/seq.base/opam
index b33d8c7d..c732d3eb 100644
--- a/esy.lock/opam/seq.base/opam
+++ b/esy.lock/opam/seq.base/opam
@@ -9,7 +9,19 @@ dev-repo: "git+https://github.com/ocaml/ocaml.git"
 bug-reports: "https://caml.inria.fr/mantis/main_page.php"
 synopsis:
   "Compatibility package for OCaml's standard iterator type starting from 4.07."
-extra-files: [
-  ["seq.install" "md5=026b31e1df290373198373d5aaa26e42"]
-  ["META.seq" "md5=b33c8a1a6c7ed797816ce27df4855107"]
-]
+extra-source "seq.install" {
+  src:
+    "https://raw.githubusercontent.com/ocaml/opam-source-archives/main/patches/seq/seq.install"
+  checksum: [
+    "sha256=fff926c2c4d5a82b6c94c60c4c35eb06e3d39975893ebe6b1f0e6557cbe34904"
+    "md5=026b31e1df290373198373d5aaa26e42"
+  ]
+}
+extra-source "META.seq" {
+  src:
+    "https://raw.githubusercontent.com/ocaml/opam-source-archives/main/patches/seq/META.seq"
+  checksum: [
+    "sha256=e95062b4d0519ef8335c02f7d0f1952d11b814c7ab7e6d566a206116162fa2be"
+    "md5=b33c8a1a6c7ed797816ce27df4855107"
+  ]
+}
diff --git a/esy.lock/opam/spawn.v0.15.1/opam b/esy.lock/opam/spawn.v0.17.0/opam
similarity index 71%
rename from esy.lock/opam/spawn.v0.15.1/opam
rename to esy.lock/opam/spawn.v0.17.0/opam
index 5be3a994..7b2449e9 100644
--- a/esy.lock/opam/spawn.v0.15.1/opam
+++ b/esy.lock/opam/spawn.v0.17.0/opam
@@ -18,8 +18,8 @@ fork takes time proportional to the process memory while vfork is
 constant time. In application using a lot of memory, vfork can be
 thousands of times faster than fork.
 """
-maintainer: ["Jane Street developers"]
-authors: ["Jane Street Group, LLC"]
+maintainer: ["opensource@janestreet.com"]
+authors: ["Jane Street Group, LLC <opensource@janestreet.com>"]
 license: "MIT"
 homepage: "https://github.com/janestreet/spawn"
 doc: "https://janestreet.github.io/spawn/"
@@ -44,13 +44,14 @@ build: [
     "@doc" {with-doc}
   ]
 ]
+available: os != "freebsd"
 dev-repo: "git+https://github.com/janestreet/spawn.git"
-x-commit-hash: "13d279ebfa8c40d4bafe18cddfdff0de54b4eaff"
 url {
   src:
-    "https://github.com/janestreet/spawn/archive/v0.15.1.tar.gz"
+    "https://github.com/janestreet/spawn/releases/download/v0.17.0/spawn-v0.17.0.tbz"
   checksum: [
-    "sha256=9afdee314fab6c3fcd689ab6eb5608d6b78078e6dede3953a47debde06c19d50"
-    "sha512=efdb31d5ec5ea36d0bc80224d4ee04e46ce3428d1662870e6cebece92bc313d6eebee378802c0c059dd6e0cafea515308c31b7dfaf04a098eb4566583c1e9ed4"
+    "sha256=33fbb5cd4c3387a6829095cfa73d5fc2eff572be61647e6052010bfbd0c2df49"
+    "sha512=bb85d1f706774793170f2d52ccbeeeaf67558046b8012bdd8a9cefc46215522a4d59a4a6f21296b0825158e6853a2430f2642ee714e1d1d8b726442d52006fc1"
   ]
 }
+x-commit-hash: "085ea6d333be59451c5fde6b50d9e4e1264fbb9c"
diff --git a/esy.lock/opam/stdune.3.11.1/opam b/esy.lock/opam/stdune.3.13.1/opam
similarity index 69%
rename from esy.lock/opam/stdune.3.11.1/opam
rename to esy.lock/opam/stdune.3.13.1/opam
index 2dfc9253..458ce7ab 100644
--- a/esy.lock/opam/stdune.3.11.1/opam
+++ b/esy.lock/opam/stdune.3.13.1/opam
@@ -14,7 +14,7 @@ depends: [
   "base-unix"
   "dyn" {= version}
   "ordering" {= version}
-  "pp" {>= "1.2.0"}
+  "pp" {>= "1.2.0" & < "2.0.0"}
   "csexp" {>= "1.5.0"}
   "odoc" {with-doc}
 ]
@@ -36,10 +36,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz"
+    "https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz"
   checksum: [
-    "sha256=866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
-    "sha512=c888153b204a16bcfed2636de776bbd5f9ca84484e716cc1e9ef3ba3c904e9dd15a2609ae943cddb6097912623ec54618c58386d6730ff742d746850400fb3cc"
+    "sha256=2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
+    "sha512=25b95d616f5d62d065c4458caa211c20615e1bf361fd13d6fd037c216b9566034b45581b7b1dfe43f051c3cdbcf5fe8ffb9c74b5974f2fb6204a3da11ea87c28"
   ]
 }
-x-commit-hash: "7cbb0e7277c6cacd1ccf7941cac5a03c25fc63cf"
+x-commit-hash: "b98be5f4c2bbac6f07ad0a9fa28de177f666b509"
diff --git a/esy.lock/opam/topkg.1.0.7/opam b/esy.lock/opam/topkg.1.0.7/opam
index 83fc06f4..37c84bf2 100644
--- a/esy.lock/opam/topkg.1.0.7/opam
+++ b/esy.lock/opam/topkg.1.0.7/opam
@@ -44,4 +44,5 @@ url {
   src: "https://erratique.ch/software/topkg/releases/topkg-1.0.7.tbz"
   checksum:
     "sha512=09e59f1759bf4db8471f02d0aefd8db602b44932a291c05c312b1423796e7a15d1598d3c62a0cec7f083eff8e410fac09363533dc4bd2120914bb9664efea535"
-}
\ No newline at end of file
+}
+x-maintenance-intent: ["(latest)"]
\ No newline at end of file
diff --git a/esy.lock/opam/uucp.15.1.0/opam b/esy.lock/opam/uucp.16.0.0/opam
similarity index 79%
rename from esy.lock/opam/uucp.15.1.0/opam
rename to esy.lock/opam/uucp.16.0.0/opam
index f3abfcad..4f9b95d2 100644
--- a/esy.lock/opam/uucp.15.1.0/opam
+++ b/esy.lock/opam/uucp.16.0.0/opam
@@ -21,12 +21,12 @@ depends: [
   "ocamlfind" {build}
   "ocamlbuild" {build}
   "topkg" {build & >= "1.0.3"}
-  "uucd" {with-test & dev & >= "15.1.0" & < "16.0.0"}
+  "uucd" {with-test & dev & >= "16.0.0" & < "17.0.0"}
   "uunf" {with-test}
 ]
 depopts: ["uunf" "cmdliner"]
 conflicts: [
-  "uunf" {< "15.1.0" | >= "16.0.0"}
+  "uunf" {< "16.0.0" | >= "17.0.0"}
   "cmdliner" {< "1.1.0"}
 ]
 build: [
@@ -45,7 +45,8 @@ post-messages:
     {failure & (arch = "ppc64" | arch = "arm64")}
 dev-repo: "git+https://erratique.ch/repos/uucp.git"
 url {
-  src: "https://erratique.ch/software/uucp/releases/uucp-15.1.0.tbz"
+  src: "https://erratique.ch/software/uucp/releases/uucp-16.0.0.tbz"
   checksum:
-    "sha512=998f94fadb72357b15a3042a3d11c31b3e16f281822673f2defdd515cd1394d55de1817628be8bd5c030175f9e62c53630d4139a1c0253800f9fb898b0f11364"
-}
\ No newline at end of file
+    "sha512=5c06d8cadb2b011b1e4ac52e14732044f6ab8e9c11e1184950ff8629b26bd173f1264247623a635b8aa4033e287bfe42d709994f19a3d79f7cbfd20158aa4992"
+}
+x-maintenance-intent: ["(latest)"]
\ No newline at end of file
diff --git a/esy.lock/opam/uuseg.15.1.0/opam b/esy.lock/opam/uuseg.16.0.0/opam
similarity index 84%
rename from esy.lock/opam/uuseg.15.1.0/opam
rename to esy.lock/opam/uuseg.16.0.0/opam
index c1a87203..03886ed9 100644
--- a/esy.lock/opam/uuseg.15.1.0/opam
+++ b/esy.lock/opam/uuseg.16.0.0/opam
@@ -29,7 +29,7 @@ depends: [
   "ocamlfind" {build}
   "ocamlbuild" {build}
   "topkg" {build & >= "1.0.3"}
-  "uucp" {>= "15.1.0" & < "16.0.0"}
+  "uucp" {>= "16.0.0" & < "17.0.0"}
 ]
 depopts: ["uutf" "cmdliner"]
 conflicts: [
@@ -49,7 +49,8 @@ build: [
 ]
 dev-repo: "git+https://erratique.ch/repos/uuseg.git"
 url {
-  src: "https://erratique.ch/software/uuseg/releases/uuseg-15.1.0.tbz"
+  src: "https://erratique.ch/software/uuseg/releases/uuseg-16.0.0.tbz"
   checksum:
-    "sha512=1e9460dc5a856c985d40c61fd1560bdfdb8bbaf8d7430405814589b47d4a7f7869658d1e3198c7a9132412e9b4b85402ceb4bda5040da426b69e9aef4222a23a"
-}
\ No newline at end of file
+    "sha512=355139aee2a72baddf3d811e522948456147546ee946b6eca20f57711865770d4b8d32ea01a7338b8e6cdedb4423ee65cee387704bb9c0c057bcbd65012679b8"
+}
+x-maintenance-intent: ["(latest)"]
\ No newline at end of file
diff --git a/esy.lock/opam/uutf.1.0.3/opam b/esy.lock/opam/uutf.1.0.3/opam
index e96cc4a4..5ca13919 100644
--- a/esy.lock/opam/uutf.1.0.3/opam
+++ b/esy.lock/opam/uutf.1.0.3/opam
@@ -33,4 +33,5 @@ can be found in the Stdlib and you are encouraged to migrate to it.
 Uutf has no dependency and is distributed under the ISC license.
 
 Home page: http://erratique.ch/software/uutf  
-Contact: Daniel Bünzli `<daniel.buenzl i@erratique.ch>`"""
\ No newline at end of file
+Contact: Daniel Bünzli `<daniel.buenzl i@erratique.ch>`"""
+x-maintenance-intent: ["(latest)"]
\ No newline at end of file
diff --git a/esy.lock/opam/xdg.3.11.1/opam b/esy.lock/opam/xdg.3.13.1/opam
similarity index 68%
rename from esy.lock/opam/xdg.3.11.1/opam
rename to esy.lock/opam/xdg.3.13.1/opam
index 9a6a17d0..a4b1c98e 100644
--- a/esy.lock/opam/xdg.3.11.1/opam
+++ b/esy.lock/opam/xdg.3.13.1/opam
@@ -31,10 +31,10 @@ build: [
 ]
 url {
   src:
-    "https://github.com/ocaml/dune/releases/download/3.11.1/dune-3.11.1.tbz"
+    "https://github.com/ocaml/dune/releases/download/3.13.1/dune-3.13.1.tbz"
   checksum: [
-    "sha256=866f2307adadaf7604f3bf9d98bb4098792baa046953a6726c96c40fc5ed3f71"
-    "sha512=c888153b204a16bcfed2636de776bbd5f9ca84484e716cc1e9ef3ba3c904e9dd15a2609ae943cddb6097912623ec54618c58386d6730ff742d746850400fb3cc"
+    "sha256=2fe0af1b4cf98649c7555b555d9f4f81d5ded87718a89df4988e214a56c8a916"
+    "sha512=25b95d616f5d62d065c4458caa211c20615e1bf361fd13d6fd037c216b9566034b45581b7b1dfe43f051c3cdbcf5fe8ffb9c74b5974f2fb6204a3da11ea87c28"
   ]
 }
-x-commit-hash: "7cbb0e7277c6cacd1ccf7941cac5a03c25fc63cf"
+x-commit-hash: "b98be5f4c2bbac6f07ad0a9fa28de177f666b509"
diff --git a/esy.lock/opam/yojson.2.1.1/opam b/esy.lock/opam/yojson.2.2.2/opam
similarity index 73%
rename from esy.lock/opam/yojson.2.1.1/opam
rename to esy.lock/opam/yojson.2.2.2/opam
index 0703d53b..1d971fe0 100644
--- a/esy.lock/opam/yojson.2.1.1/opam
+++ b/esy.lock/opam/yojson.2.2.2/opam
@@ -12,12 +12,11 @@ maintainer: [
 authors: ["Martin Jambon"]
 license: "BSD-3-Clause"
 homepage: "https://github.com/ocaml-community/yojson"
-doc: "https://ocaml-community.github.io/yojson"
+doc: "https://ocaml.org/p/yojson/latest"
 bug-reports: "https://github.com/ocaml-community/yojson/issues"
 depends: [
   "dune" {>= "2.7"}
   "ocaml" {>= "4.02.3"}
-  "cppo" {build}
   "alcotest" {with-test & >= "0.8.5"}
   "seq" {>= "0.2.2"}
   "odoc" {with-doc}
@@ -39,10 +38,10 @@ build: [
 dev-repo: "git+https://github.com/ocaml-community/yojson.git"
 url {
   src:
-    "https://github.com/ocaml-community/yojson/releases/download/2.1.1/yojson-2.1.1.tbz"
+    "https://github.com/ocaml-community/yojson/releases/download/2.2.2/yojson-2.2.2.tbz"
   checksum: [
-    "sha256=d58183207b198dc065866239066e074c34f9e139c0d9c4175a38809790e88173"
-    "sha512=f7b8529900acb29bc6236d8312d3ebcadbcb3f9d361c8acaed9f7fc7e30527b41a1f3cff80382dde445e6da18a4edc5a9c6758af24affce1022d0741dbd9daeb"
+    "sha256=9abfad8c9a79d4723ad2f6448e669c1e68dbfc87cc54a1b7c064b0c90912c595"
+    "sha512=ac52eae3ca1d3129a7885ca638e6ae5bcfc387598a82cc30d3e4988fd154f1756719c399f96e950d898c79a6dbd4ccc44b6f468bcafbd620e6945a0415b41e0c"
   ]
 }
-x-commit-hash: "57bc8ca0eaf5bdb423fcdece49ea0d1c2866f90c"
+x-commit-hash: "3f82b79d1865eec82c6f498ee1835a90c74c31b4"
diff --git a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/files/ocamlbuild-0.14.2.patch b/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/files/ocamlbuild-0.14.2.patch
deleted file mode 100644
index e69de29b..00000000
diff --git a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/files/winpatch.patch b/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/files/winpatch.patch
deleted file mode 100644
index bba9929f..00000000
--- a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/files/winpatch.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./Makefile
-+++ ./Makefile
-@@ -271,7 +271,7 @@
- 	echo '  "ocamlbuild.byte" {"ocamlbuild.byte"}' >> ocamlbuild.install
- ifeq ($(OCAML_NATIVE), true)
- 	echo '  "ocamlbuild.native" {"ocamlbuild.native"}' >> ocamlbuild.install
--	echo '  "ocamlbuild.native" {"ocamlbuild"}' >> ocamlbuild.install
-+	echo "  \"ocamlbuild.native\" {\"ocamlbuild${EXE}\"}" >> ocamlbuild.install
- else
- 	echo '  "ocamlbuild.byte" {"ocamlbuild"}' >> ocamlbuild.install
- endif
diff --git a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/package.json b/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/package.json
deleted file mode 100644
index b57a42cc..00000000
--- a/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.2+win_opam_override/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "build": [
-    [
-      "bash",
-      "-c",
-      "#{os == 'windows' ? 'patch -p1 < winpatch.patch' : 'true'}"
-    ],
-    [
-      "make",
-      "-f",
-      "configure.make",
-      "all",
-      "OCAMLBUILD_PREFIX=#{self.install}",
-      "OCAMLBUILD_BINDIR=#{self.bin}",
-      "OCAMLBUILD_LIBDIR=#{self.lib}",
-      "OCAMLBUILD_MANDIR=#{self.man}",
-      "OCAMLBUILD_NATIVE=true",
-      "OCAMLBUILD_NATIVE_TOOLS=true",
-      "EXE=#{os == 'windows' ? '.exe': ''}"
-    ],
-    [
-      "make",
-      "check-if-preinstalled",
-      "all",
-      "EXE=#{os == 'windows' ? '.exe': ''}",
-      "opam-install"
-    ]
-  ]
-}
diff --git a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/files/findlib.patch b/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.8_opam_override/files/findlib.patch
similarity index 100%
rename from esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/files/findlib.patch
rename to esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.8_opam_override/files/findlib.patch
diff --git a/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/package.json b/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.8_opam_override/package.json
similarity index 100%
rename from esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.6_opam_override/package.json
rename to esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.8_opam_override/package.json
diff --git a/package.json b/package.json
index c0b09786..704dd0b3 100644
--- a/package.json
+++ b/package.json
@@ -6,8 +6,8 @@
   "license": "Apache-2.0",
   "dependencies": {
     "ocaml": ">= 4.12.0 < 5.0.0",
-    "@grain/libbinaryen": ">= 114.0.0 < 115.0.0",
-    "@opam/dune": ">= 3.0.0",
+    "@grain/libbinaryen": ">= 116.0.0 < 117.0.0",
+    "@opam/dune": ">= 3.0.0 < 3.12.0",
     "@opam/dune-configurator": ">= 3.0.0"
   },
   "devDependencies": {
@@ -16,7 +16,8 @@
     "@opam/ocaml-lsp-server": ">= 1.9.1 < 1.13.0"
   },
   "resolutions": {
-    "@opam/ocp-indent": "1.7.0"
+    "@opam/ocp-indent": "1.7.0",
+    "@grain/libbinaryen": "link:../libbinaryen"
   },
   "esy": {
     "build": "dune build -p binaryen"
diff --git a/src/expression.c b/src/expression.c
index 5f6e189b..d6926d39 100644
--- a/src/expression.c
+++ b/src/expression.c
@@ -442,11 +442,11 @@ caml_binaryen_pop(value _module, value _ty) {
 }
 
 CAMLprim value
-caml_binaryen_i31_new(value _module, value _val) {
+caml_binaryen_ref_i31(value _module, value _val) {
   CAMLparam2(_module, _val);
   BinaryenModuleRef module = BinaryenModuleRef_val(_module);
   BinaryenExpressionRef val = BinaryenExpressionRef_val(_val);
-  BinaryenExpressionRef exp = BinaryenI31New(module, val);
+  BinaryenExpressionRef exp = BinaryenRefI31(module, val);
   CAMLreturn(alloc_BinaryenExpressionRef(exp));
 }
 
@@ -717,9 +717,9 @@ caml_binaryen_expression_id_tuple_extract(value unit) {
   CAMLreturn(Val_int(BinaryenTupleExtractId()));
 }
 CAMLprim value
-caml_binaryen_expression_id_i31_new(value unit) {
+caml_binaryen_expression_id_ref_i31(value unit) {
   CAMLparam1(unit);
-  CAMLreturn(Val_int(BinaryenI31NewId()));
+  CAMLreturn(Val_int(BinaryenRefI31Id()));
 }
 CAMLprim value
 caml_binaryen_expression_id_i31_get(value unit) {
diff --git a/src/expression.js b/src/expression.js
index b19c5ed3..50dc0da1 100644
--- a/src/expression.js
+++ b/src/expression.js
@@ -542,9 +542,9 @@ function caml_binaryen_pop(wasm_mod, typ) {
   return Binaryen._BinaryenPop(wasm_mod, typ);
 }
 
-//Provides: caml_binaryen_i31_new
-function caml_binaryen_i31_new(wasm_mod, typ) {
-  return wasm_mod.i31.new(typ);
+//Provides: caml_binaryen_ref_i31
+function caml_binaryen_ref_i31(wasm_mod, typ) {
+  return wasm_mod.ref.i31(typ);
 }
 
 //Provides: caml_binaryen_i31_get
@@ -812,10 +812,10 @@ function caml_binaryen_expression_id_tuple_make() {
 function caml_binaryen_expression_id_tuple_extract() {
   return Binaryen.TupleExtractId;
 }
-//Provides: caml_binaryen_expression_id_i31_new
+//Provides: caml_binaryen_expression_id_ref_i31
 //Requires: Binaryen
-function caml_binaryen_expression_id_i31_new() {
-  return Binaryen.I31NewId;
+function caml_binaryen_expression_id_ref_i31() {
+  return Binaryen.RefI31Id;
 }
 //Provides: caml_binaryen_expression_id_i31_get
 //Requires: Binaryen
diff --git a/src/expression.ml b/src/expression.ml
index b0fceeec..57388303 100644
--- a/src/expression.ml
+++ b/src/expression.ml
@@ -285,9 +285,9 @@ external id_tuple_extract : unit -> int
 
 let id_tuple_extract = id_tuple_extract ()
 
-external id_i31_new : unit -> int = "caml_binaryen_expression_id_i31_new"
+external id_ref_i31 : unit -> int = "caml_binaryen_expression_id_ref_i31"
 
-let id_i31_new = id_i31_new ()
+let id_ref_i31 = id_ref_i31 ()
 
 external id_i31_get : unit -> int = "caml_binaryen_expression_id_i31_get"
 
@@ -394,7 +394,7 @@ let get_kind expr =
   | n when n = id_rethrow -> Rethrow
   | n when n = id_tuple_make -> TupleMake
   | n when n = id_tuple_extract -> TupleExtract
-  | n when n = id_i31_new -> I31New
+  | n when n = id_ref_i31 -> I31New
   | n when n = id_i31_get -> I31Get
   | n when n = id_call_ref -> CallRef
   | n when n = id_ref_test -> RefTest
@@ -706,22 +706,9 @@ module Memory_init = struct
   external make : Module.t -> string -> t -> t -> t -> string -> t
     = "caml_binaryen_memory_init__bytecode" "caml_binaryen_memory_init"
   (** Module, segment, destination, offset, size, memory_name *)
-
-  (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
-  let make wasm_mod segment dest offset size memory_name =
-    make wasm_mod (string_of_int segment) dest offset size memory_name
-
   external get_segment : t -> string = "caml_binaryen_memory_init_get_segment"
-
-  (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
-  let get_segment expr = int_of_string (get_segment expr)
-
   external set_segment : t -> string -> unit
     = "caml_binaryen_memory_init_set_segment"
-
-  (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
-  let set_segment expr segment = set_segment expr (string_of_int segment)
-
   external get_dest : t -> t = "caml_binaryen_memory_init_get_dest"
   external set_dest : t -> t -> unit = "caml_binaryen_memory_init_set_dest"
   external get_offset : t -> t = "caml_binaryen_memory_init_get_offset"
@@ -733,20 +720,9 @@ end
 module Data_drop = struct
   external make : Module.t -> string -> t = "caml_binaryen_data_drop"
   (** Module, segment. *)
-
-  (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
-  let make wasm_mod segment = make wasm_mod (string_of_int segment)
-
   external get_segment : t -> string = "caml_binaryen_data_drop_get_segment"
-
-  (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
-  let get_segment expr = int_of_string (get_segment expr)
-
   external set_segment : t -> string -> unit
     = "caml_binaryen_data_drop_set_segment"
-
-  (* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)
-  let set_segment expr segment = set_segment expr (string_of_int segment)
 end
 
 module Memory_copy = struct
@@ -820,7 +796,7 @@ module Pop = struct
 end
 
 module I31 = struct
-  external make : Module.t -> t -> t = "caml_binaryen_i31_new"
+  external make : Module.t -> t -> t = "caml_binaryen_ref_i31"
   (** Module, value *)
 
   external get : Module.t -> t -> bool -> t = "caml_binaryen_i31_get"
diff --git a/src/expression.mli b/src/expression.mli
index c22e1810..b53655f9 100644
--- a/src/expression.mli
+++ b/src/expression.mli
@@ -256,9 +256,9 @@ module Memory_grow : sig
 end
 
 module Memory_init : sig
-  val make : Module.t -> int -> t -> t -> t -> string -> t
-  val get_segment : t -> int
-  val set_segment : t -> int -> unit
+  val make : Module.t -> string -> t -> t -> t -> string -> t
+  val get_segment : t -> string
+  val set_segment : t -> string -> unit
   val get_dest : t -> t
   val set_dest : t -> t -> unit
   val get_offset : t -> t
@@ -268,9 +268,9 @@ module Memory_init : sig
 end
 
 module Data_drop : sig
-  val make : Module.t -> int -> t
-  val get_segment : t -> int
-  val set_segment : t -> int -> unit
+  val make : Module.t -> string -> t
+  val get_segment : t -> string
+  val set_segment : t -> string -> unit
 end
 
 module Memory_copy : sig
diff --git a/src/heap_type.c b/src/heap_type.c
index a6ac063c..711e4ff8 100644
--- a/src/heap_type.c
+++ b/src/heap_type.c
@@ -63,27 +63,6 @@ caml_binaryen_heap_type_string(value unit) {
   CAMLreturn(alloc_BinaryenHeapType(ty));
 }
 
-CAMLprim value
-caml_binaryen_heap_type_stringview_wtf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenHeapType ty = BinaryenHeapTypeStringviewWTF8();
-  CAMLreturn(alloc_BinaryenHeapType(ty));
-}
-
-CAMLprim value
-caml_binaryen_heap_type_stringview_wtf16(value unit) {
-  CAMLparam1(unit);
-  BinaryenHeapType ty = BinaryenHeapTypeStringviewWTF16();
-  CAMLreturn(alloc_BinaryenHeapType(ty));
-}
-
-CAMLprim value
-caml_binaryen_heap_type_stringview_iter(value unit) {
-  CAMLparam1(unit);
-  BinaryenHeapType ty = BinaryenHeapTypeStringviewIter();
-  CAMLreturn(alloc_BinaryenHeapType(ty));
-}
-
 CAMLprim value
 caml_binaryen_heap_type_none(value unit) {
   CAMLparam1(unit);
diff --git a/src/heap_type.js b/src/heap_type.js
index 095ba4ae..b14ac2c7 100644
--- a/src/heap_type.js
+++ b/src/heap_type.js
@@ -46,24 +46,6 @@ function caml_binaryen_heap_type_string() {
   return Binaryen._BinaryenHeapTypeString();
 }
 
-//Provides: caml_binaryen_heap_type_stringview_wtf8
-//Requires: Binaryen
-function caml_binaryen_heap_type_stringview_wtf8() {
-  return Binaryen._BinaryenHeapTypeStringviewWTF8();
-}
-
-//Provides: caml_binaryen_heap_type_stringview_wtf16
-//Requires: Binaryen
-function caml_binaryen_heap_type_stringview_wtf16() {
-  return Binaryen._BinaryenHeapTypeStringviewWTF16();
-}
-
-//Provides: caml_binaryen_heap_type_stringview_iter
-//Requires: Binaryen
-function caml_binaryen_heap_type_stringview_iter() {
-  return Binaryen._BinaryenHeapTypeStringviewIter();
-}
-
 //Provides: caml_binaryen_heap_type_none
 //Requires: Binaryen
 function caml_binaryen_heap_type_none() {
diff --git a/src/heap_type.ml b/src/heap_type.ml
index 56c809d4..44271e44 100644
--- a/src/heap_type.ml
+++ b/src/heap_type.ml
@@ -8,12 +8,6 @@ external i31 : unit -> t = "caml_binaryen_heap_type_i31"
 external struct_ : unit -> t = "caml_binaryen_heap_type_struct"
 external array : unit -> t = "caml_binaryen_heap_type_array"
 external string : unit -> t = "caml_binaryen_heap_type_string"
-external stringview_wtf8 : unit -> t = "caml_binaryen_heap_type_stringview_wtf8"
-
-external stringview_wtf16 : unit -> t
-  = "caml_binaryen_heap_type_stringview_wtf16"
-
-external stringview_iter : unit -> t = "caml_binaryen_heap_type_stringview_iter"
 external none : unit -> t = "caml_binaryen_heap_type_none"
 external noext : unit -> t = "caml_binaryen_heap_type_noext"
 external nofunc : unit -> t = "caml_binaryen_heap_type_nofunc"
diff --git a/src/heap_type.mli b/src/heap_type.mli
index 9c4f207c..ff28fa8f 100644
--- a/src/heap_type.mli
+++ b/src/heap_type.mli
@@ -8,9 +8,6 @@ val i31 : unit -> t
 val struct_ : unit -> t
 val array : unit -> t
 val string : unit -> t
-val stringview_wtf8 : unit -> t
-val stringview_wtf16 : unit -> t
-val stringview_iter : unit -> t
 val none : unit -> t
 val noext : unit -> t
 val nofunc : unit -> t
diff --git a/src/memory.c b/src/memory.c
index 89ab274a..6e8f8990 100644
--- a/src/memory.c
+++ b/src/memory.c
@@ -8,19 +8,25 @@
 
 
 CAMLprim value
-caml_binaryen_set_memory(value _module, value _initial, value _maximum, value _exportName, value _segments, value _segmentPassive, value _segmentOffsets, value _segmentSizes, value _shared, value _memory64, value _memoryName) {
-  CAMLparam5(_module, _initial, _maximum, _exportName, _segments);
-  CAMLxparam5(_segmentPassive, _segmentOffsets, _segmentSizes, _shared, _memory64);
-  CAMLxparam1(_memoryName);
+caml_binaryen_set_memory(value _module, value _initial, value _maximum, value _exportName, value _segment_names, value _segment_data, value _segmentPassive, value _segmentOffsets, value _segmentSizes, value _shared, value _memory64, value _memoryName) {
+  CAMLparam5(_module, _initial, _maximum, _exportName, _segment_names);
+  CAMLxparam5(_segment_data, _segmentPassive, _segmentOffsets, _segmentSizes, _shared);
+  CAMLxparam2(_memory64, _memoryName);
   BinaryenModuleRef module = BinaryenModuleRef_val(_module);
   BinaryenIndex initial = Int_val(_initial);
   BinaryenIndex maximum = Int_val(_maximum);
   char* exportName = Safe_String_val(_exportName);
-  _segments = array_of_list(_segments);
-  int segmentsLen = array_length(_segments);
-  const char* segments[segmentsLen];
-  for (int i = 0; i < segmentsLen; i++) {
-    segments[i] = Safe_String_val(Field(_segments, i));
+  _segment_names = array_of_list(_segment_names);
+  int segmentNamesLen = array_length(_segment_names);
+  const char* segment_names[segmentNamesLen];
+  for (int i = 0; i < segmentNamesLen; i++) {
+    segment_names[i] = Safe_String_val(Field(_segment_names, i));
+  }
+  _segment_data = array_of_list(_segment_data);
+  int segmentDataLen = array_length(_segment_data);
+  const char* segment_data[segmentDataLen];
+  for (int i = 0; i < segmentDataLen; i++) {
+    segment_data[i] = Safe_String_val(Field(_segment_data, i));
   }
   _segmentPassive = array_of_list(_segmentPassive);
   int segmentPassiveLen = array_length(_segmentPassive);
@@ -43,12 +49,12 @@ caml_binaryen_set_memory(value _module, value _initial, value _maximum, value _e
   bool shared = Bool_val(_shared);
   bool memory64 = Bool_val(_memory64);
   char* memoryName = Safe_String_val(_memoryName);
-  BinaryenSetMemory(module, initial, maximum, exportName, segments, segmentPassive, segmentOffsets, segmentSizes, segmentsLen, shared, memory64, memoryName);
+  BinaryenSetMemory(module, initial, maximum, exportName, segment_names, segment_data, segmentPassive, segmentOffsets, segmentSizes, segmentNamesLen, shared, memory64, memoryName);
   CAMLreturn(Val_unit);
 }
 CAMLprim value
 caml_binaryen_set_memory__bytecode(value * argv) {
-  return caml_binaryen_set_memory(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]);
+  return caml_binaryen_set_memory(argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11]);
 }
 
 CAMLprim value
@@ -111,28 +117,28 @@ caml_binaryen_get_num_memory_segments(value _module) {
 }
 
 CAMLprim value
-caml_binaryen_get_memory_segment_byte_offset(value _module, value _id) {
-  CAMLparam2(_module, _id);
+caml_binaryen_get_memory_segment_byte_offset(value _module, value _name) {
+  CAMLparam2(_module, _name);
   BinaryenModuleRef module = BinaryenModuleRef_val(_module);
-  BinaryenIndex id = Int_val(_id);
-  CAMLreturn(Val_int(BinaryenGetMemorySegmentByteOffset(module, id)));
+  char* name = Safe_String_val(_name);
+  CAMLreturn(Val_int(BinaryenGetMemorySegmentByteOffset(module, name)));
 }
 
 CAMLprim value
-caml_binaryen_get_memory_segment_passive(value _module, value _id) {
-  CAMLparam2(_module, _id);
+caml_binaryen_get_memory_segment_passive(value _module, value _name) {
+  CAMLparam2(_module, _name);
   BinaryenModuleRef module = BinaryenModuleRef_val(_module);
-  BinaryenIndex id = Int_val(_id);
-  CAMLreturn(Val_bool(BinaryenGetMemorySegmentPassive(module, id)));
+  char* name = Safe_String_val(_name);
+  CAMLreturn(Val_bool(BinaryenGetMemorySegmentPassive(module, name)));
 }
 
 CAMLprim value
-caml_binaryen_get_memory_segment_data(value _module, value _id) {
-  CAMLparam2(_module, _id);
+caml_binaryen_get_memory_segment_data(value _module, value _name) {
+  CAMLparam2(_module, _name);
   BinaryenModuleRef module = BinaryenModuleRef_val(_module);
-  BinaryenIndex id = Int_val(_id);
-  size_t size = BinaryenGetMemorySegmentByteLength(module, id);
+  char* name = Safe_String_val(_name);
+  size_t size = BinaryenGetMemorySegmentByteLength(module, name);
   CAMLprim value bytes = caml_alloc_string(size);
-  BinaryenCopyMemorySegmentData(module, id, (char*)Bytes_val(bytes));
+  BinaryenCopyMemorySegmentData(module, name, (char*)Bytes_val(bytes));
   CAMLreturn(bytes);
 }
diff --git a/src/memory.js b/src/memory.js
index 5aeb845f..43a12b77 100644
--- a/src/memory.js
+++ b/src/memory.js
@@ -6,7 +6,8 @@ function caml_binaryen_set_memory(
   initial,
   maximum,
   exportName,
-  segments,
+  segmentNames,
+  segmentData,
   segmentPassives,
   segmentOffsets,
   segmentSizes,
@@ -14,11 +15,13 @@ function caml_binaryen_set_memory(
   memory64,
   memoryName
 ) {
+  var datas = caml_list_to_js_array(segmentData);
   var passives = caml_list_to_js_array(segmentPassives);
   var offsets = caml_list_to_js_array(segmentOffsets);
-  var segs = caml_list_to_js_array(segments).map(function (segment, idx) {
+  var segs = caml_list_to_js_array(segmentNames).map(function (name, idx) {
     return {
-      data: caml_convert_bytes_to_array(segment),
+      name: caml_jsstring_of_string(name),
+      data: caml_convert_bytes_to_array(datas[idx]),
       passive: caml_js_from_bool(passives[idx]),
       offset: offsets[idx],
     };
@@ -48,7 +51,8 @@ function caml_binaryen_set_memory__bytecode() {
     arguments[7],
     arguments[8],
     arguments[9],
-    arguments[10]
+    arguments[10],
+    arguments[11]
   );
 }
 
@@ -108,20 +112,22 @@ function caml_binaryen_get_num_memory_segments(wasm_mod) {
 }
 
 //Provides: caml_binaryen_get_memory_segment_byte_offset
-function caml_binaryen_get_memory_segment_byte_offset(wasm_mod, idx) {
-  var info = wasm_mod.getMemorySegmentInfoByIndex(idx);
+//Requires: caml_jsstring_of_string
+function caml_binaryen_get_memory_segment_byte_offset(wasm_mod, name) {
+  var info = wasm_mod.getMemorySegmentInfo(caml_jsstring_of_string(name));
   return info.offset;
 }
 
 //Provides: caml_binaryen_get_memory_segment_passive
-function caml_binaryen_get_memory_segment_passive(wasm_mod, idx) {
-  var info = wasm_mod.getMemorySegmentInfoByIndex(idx);
+//Requires: caml_jsstring_of_string
+function caml_binaryen_get_memory_segment_passive(wasm_mod, name) {
+  var info = wasm_mod.getMemorySegmentInfo(caml_jsstring_of_string(name));
   return info.passive;
 }
 
 //Provides: caml_binaryen_get_memory_segment_data
-//Requires: caml_bytes_of_array
-function caml_binaryen_get_memory_segment_data(wasm_mod, idx) {
-  var info = wasm_mod.getMemorySegmentInfoByIndex(idx);
+//Requires: caml_bytes_of_array, caml_jsstring_of_string
+function caml_binaryen_get_memory_segment_data(wasm_mod, name) {
+  var info = wasm_mod.getMemorySegmentInfo(caml_jsstring_of_string(name));
   return caml_bytes_of_array(info.data);
 }
diff --git a/src/memory.ml b/src/memory.ml
index 4c96791a..4319c285 100644
--- a/src/memory.ml
+++ b/src/memory.ml
@@ -3,6 +3,7 @@ external set_memory :
   int ->
   int ->
   string ->
+  string list ->
   bytes list ->
   bool list ->
   Expression.t list ->
@@ -12,7 +13,7 @@ external set_memory :
   string ->
   unit = "caml_binaryen_set_memory__bytecode" "caml_binaryen_set_memory"
 
-type segment = { data : bytes; kind : segment_kind; size : int }
+type segment = { name : string; data : bytes; kind : segment_kind; size : int }
 and segment_kind = Passive | Active of { offset : Expression.t }
 
 (** Module, initial size, maximum size, export name, segments, shared, memory64, moduleName . *)
@@ -20,26 +21,36 @@ let set_memory wasm_mod initial maximum export_name (segments : segment list)
     shared memory64 moduleName =
   let split_segments segments =
     List.fold_right
-      (fun { data; kind; size }
-           (segment_data, segment_passive, segment_offsets, segment_sizes) ->
+      (fun { name; data; kind; size }
+           ( segment_name,
+             segment_data,
+             segment_passive,
+             segment_offsets,
+             segment_sizes ) ->
         match kind with
         | Active { offset } ->
-            ( data :: segment_data,
+            ( name :: segment_name,
+              data :: segment_data,
               false :: segment_passive,
               offset :: segment_offsets,
               size :: segment_sizes )
         | Passive ->
-            ( data :: segment_data,
+            ( name :: segment_name,
+              data :: segment_data,
               true :: segment_passive,
               Expression.Null.make () :: segment_offsets,
               size :: segment_sizes ))
-      segments ([], [], [], [])
+      segments ([], [], [], [], [])
   in
-  let segment_data, segment_passive, segment_offsets, segment_sizes =
+  let ( segment_name,
+        segment_data,
+        segment_passive,
+        segment_offsets,
+        segment_sizes ) =
     split_segments segments
   in
-  set_memory wasm_mod initial maximum export_name segment_data segment_passive
-    segment_offsets segment_sizes shared memory64 moduleName
+  set_memory wasm_mod initial maximum export_name segment_name segment_data
+    segment_passive segment_offsets segment_sizes shared memory64 moduleName
 
 external has_memory : Module.t -> bool = "caml_binaryen_has_memory"
 
@@ -59,11 +70,11 @@ let unlimited = -1
 external get_num_segments : Module.t -> int
   = "caml_binaryen_get_num_memory_segments"
 
-external get_segment_byte_offset : Module.t -> int -> int
+external get_segment_byte_offset : Module.t -> string -> int
   = "caml_binaryen_get_memory_segment_byte_offset"
 
-external get_segment_passive : Module.t -> int -> bool
+external get_segment_passive : Module.t -> string -> bool
   = "caml_binaryen_get_memory_segment_passive"
 
-external get_segment_data : Module.t -> int -> bytes
+external get_segment_data : Module.t -> string -> bytes
   = "caml_binaryen_get_memory_segment_data"
diff --git a/src/memory.mli b/src/memory.mli
index 06f6cfb4..6ecf64d8 100644
--- a/src/memory.mli
+++ b/src/memory.mli
@@ -1,4 +1,4 @@
-type segment = { data : bytes; kind : segment_kind; size : int }
+type segment = { name : string; data : bytes; kind : segment_kind; size : int }
 and segment_kind = Passive | Active of { offset : Expression.t }
 
 val set_memory :
@@ -20,6 +20,6 @@ val is_shared : Module.t -> string -> bool
 val is_64 : Module.t -> string -> bool
 val unlimited : int
 val get_num_segments : Module.t -> int
-val get_segment_byte_offset : Module.t -> int -> int
-val get_segment_passive : Module.t -> int -> bool
-val get_segment_data : Module.t -> int -> bytes
+val get_segment_byte_offset : Module.t -> string -> int
+val get_segment_passive : Module.t -> string -> bool
+val get_segment_data : Module.t -> string -> bytes
diff --git a/src/module.c b/src/module.c
index 70009a80..9b58fce0 100644
--- a/src/module.c
+++ b/src/module.c
@@ -44,10 +44,9 @@ caml_binaryen_module_print_asmjs(value module) {
 }
 
 CAMLprim value
-caml_binaryen_module_print_stack_ir(value module, value _optimize) {
-  CAMLparam2(module, _optimize);
-  bool optimize = Bool_val(_optimize);
-  BinaryenModulePrintStackIR(BinaryenModuleRef_val(module), optimize);
+caml_binaryen_module_print_stack_ir(value module) {
+  CAMLparam1(module);
+  BinaryenModulePrintStackIR(BinaryenModuleRef_val(module));
   CAMLreturn(Val_unit);
 }
 
@@ -127,11 +126,10 @@ caml_binaryen_module_write_text(value _module) {
 // There is something weird with this function that causes a bunch of newlines to
 // be printed on stdout when calling it. Not sure if that's a bug in Binaryen.
 CAMLprim value
-caml_binaryen_module_write_stack_ir(value _module, value _optimize) {
-  CAMLparam2(_module, _optimize);
+caml_binaryen_module_write_stack_ir(value _module) {
+  CAMLparam1(_module);
   BinaryenModuleRef module = BinaryenModuleRef_val(_module);
-  bool optimize = Bool_val(_optimize);
-  char* result = BinaryenModuleAllocateAndWriteStackIR(module, optimize);
+  char* result = BinaryenModuleAllocateAndWriteStackIR(module);
   CAMLlocal1(text);
   text = caml_copy_string(result);
   free(result);
diff --git a/src/module.js b/src/module.js
index 09345879..d3d08bff 100644
--- a/src/module.js
+++ b/src/module.js
@@ -37,10 +37,10 @@ function caml_binaryen_module_print_asmjs(wasm_mod) {
 }
 
 //Provides: caml_binaryen_module_print_stack_ir
-//Requires: caml_string_of_jsstring, caml_js_from_bool
+//Requires: caml_string_of_jsstring
 //Requires: caml_ml_output, caml_ml_string_length
-function caml_binaryen_module_print_stack_ir(wasm_mod, optimize) {
-  var stackir = wasm_mod.emitStackIR(caml_js_from_bool(optimize));
+function caml_binaryen_module_print_stack_ir(wasm_mod) {
+  var stackir = wasm_mod.emitStackIR();
   var chanid = 1; // stdout
   var s = caml_string_of_jsstring(stackir);
   caml_ml_output(chanid, s, 0, caml_ml_string_length(s));
@@ -93,9 +93,9 @@ function caml_binaryen_module_write_text(wasm_mod) {
 }
 
 //Provides: caml_binaryen_module_write_stack_ir
-//Requires: caml_string_of_jsstring, caml_js_from_bool
-function caml_binaryen_module_write_stack_ir(wasm_mod, optimize) {
-  var text = wasm_mod.emitStackIR(caml_js_from_bool(optimize));
+//Requires: caml_string_of_jsstring
+function caml_binaryen_module_write_stack_ir(wasm_mod) {
+  var text = wasm_mod.emitStackIR();
   return caml_string_of_jsstring(text);
 }
 
diff --git a/src/module.ml b/src/module.ml
index 0f7e3c7c..1ff201ea 100644
--- a/src/module.ml
+++ b/src/module.ml
@@ -72,9 +72,9 @@ module Feature = struct
 
   let strings = strings ()
 
-  external multi_memories : unit -> t = "caml_binaryen_feature_multi_memories"
+  external multi_memory : unit -> t = "caml_binaryen_feature_multi_memory"
 
-  let multi_memories = multi_memories ()
+  let multi_memory = multi_memory ()
 
   external all : unit -> t = "caml_binaryen_feature_all"
 
@@ -90,10 +90,7 @@ external add_custom_section : t -> string -> string -> unit
 external parse : string -> t = "caml_binaryen_module_parse"
 external print : t -> unit = "caml_binaryen_module_print"
 external print_asmjs : t -> unit = "caml_binaryen_module_print_asmjs"
-
-external print_stack_ir : t -> bool -> unit
-  = "caml_binaryen_module_print_stack_ir"
-
+external print_stack_ir : t -> unit = "caml_binaryen_module_print_stack_ir"
 external validate : t -> int = "caml_binaryen_module_validate"
 external optimize : t -> unit = "caml_binaryen_module_optimize"
 external get_features : t -> int = "caml_binaryen_module_get_features"
@@ -124,10 +121,7 @@ external write : t -> string option -> bytes * string option
   = "caml_binaryen_module_write"
 
 external write_text : t -> string = "caml_binaryen_module_write_text"
-
-external write_stack_ir : t -> bool -> string
-  = "caml_binaryen_module_write_stack_ir"
-
+external write_stack_ir : t -> string = "caml_binaryen_module_write_stack_ir"
 external read : bytes -> t = "caml_binaryen_module_read"
 external interpret : t -> unit = "caml_binaryen_module_interpret"
 
diff --git a/src/module.mli b/src/module.mli
index 6f8771b4..dfbdef56 100644
--- a/src/module.mli
+++ b/src/module.mli
@@ -19,7 +19,7 @@ module Feature : sig
   val relaxed_simd : t
   val extended_const : t
   val strings : t
-  val multi_memories : t
+  val multi_memory : t
   val all : t
 end
 
@@ -29,7 +29,7 @@ val add_custom_section : t -> string -> string -> unit
 val parse : string -> t
 val print : t -> unit
 val print_asmjs : t -> unit
-val print_stack_ir : t -> bool -> unit
+val print_stack_ir : t -> unit
 val validate : t -> int
 val optimize : t -> unit
 val get_features : t -> Feature.t list
@@ -38,7 +38,7 @@ val run_passes : t -> Passes.t list -> unit
 val auto_drop : t -> unit
 val write : t -> string option -> bytes * string option
 val write_text : t -> string
-val write_stack_ir : t -> bool -> string
+val write_stack_ir : t -> string
 val read : bytes -> t
 val interpret : t -> unit
 val add_debug_info_filename : t -> string -> int
diff --git a/src/module_feature.c b/src/module_feature.c
index 2045a3be..d414fd51 100644
--- a/src/module_feature.c
+++ b/src/module_feature.c
@@ -120,9 +120,9 @@ caml_binaryen_feature_strings(value unit) {
 }
 
 CAMLprim value
-caml_binaryen_feature_multi_memories(value unit) {
+caml_binaryen_feature_multi_memory(value unit) {
   CAMLparam1(unit);
-  CAMLreturn(Val_int(BinaryenFeatureMultiMemories()));
+  CAMLreturn(Val_int(BinaryenFeatureMultiMemory()));
 }
 
 CAMLprim value
diff --git a/src/module_feature.js b/src/module_feature.js
index 4f6803c1..1cc397c1 100644
--- a/src/module_feature.js
+++ b/src/module_feature.js
@@ -104,10 +104,10 @@ function caml_binaryen_feature_strings() {
   return Binaryen.Features.Strings;
 }
 
-//Provides: caml_binaryen_feature_multi_memories
+//Provides: caml_binaryen_feature_multi_memory
 //Requires: Binaryen
-function caml_binaryen_feature_multi_memories() {
-  return Binaryen.Features.MultiMemories;
+function caml_binaryen_feature_multi_memory() {
+  return Binaryen.Features.MultiMemory;
 }
 
 //Provides: caml_binaryen_feature_all
diff --git a/src/op.c b/src/op.c
index 1b22510f..e39a3bd7 100644
--- a/src/op.c
+++ b/src/op.c
@@ -2288,48 +2288,6 @@ caml_binaryen_br_on_cast_fail(value unit) {
   CAMLreturn(alloc_BinaryenOp(op));
 }
 
-CAMLprim value
-caml_binaryen_string_new_utf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringNewUTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_new_wtf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringNewWTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_new_lossy_utf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringNewLossyUTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_new_wtf16(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringNewWTF16();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_new_utf8_array(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringNewUTF8Array();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_new_wtf8_array(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringNewWTF8Array();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
 CAMLprim value
 caml_binaryen_string_new_lossy_utf8_array(value unit) {
   CAMLparam1(unit);
@@ -2358,13 +2316,6 @@ caml_binaryen_string_measure_utf8(value unit) {
   CAMLreturn(alloc_BinaryenOp(op));
 }
 
-CAMLprim value
-caml_binaryen_string_measure_wtf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringMeasureWTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
 CAMLprim value
 caml_binaryen_string_measure_wtf16(value unit) {
   CAMLparam1(unit);
@@ -2372,55 +2323,6 @@ caml_binaryen_string_measure_wtf16(value unit) {
   CAMLreturn(alloc_BinaryenOp(op));
 }
 
-CAMLprim value
-caml_binaryen_string_measure_is_usv(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringMeasureIsUSV();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_measure_wtf16_view(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringMeasureWTF16View();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_encode_utf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringEncodeUTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_encode_lossy_utf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringEncodeLossyUTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_encode_wtf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringEncodeWTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_encode_wtf16(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringEncodeWTF16();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_encode_utf8_array(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringEncodeUTF8Array();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
 CAMLprim value
 caml_binaryen_string_encode_lossy_utf8_array(value unit) {
   CAMLparam1(unit);
@@ -2428,13 +2330,6 @@ caml_binaryen_string_encode_lossy_utf8_array(value unit) {
   CAMLreturn(alloc_BinaryenOp(op));
 }
 
-CAMLprim value
-caml_binaryen_string_encode_wtf8_array(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringEncodeWTF8Array();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
 CAMLprim value
 caml_binaryen_string_encode_wtf16_array(value unit) {
   CAMLparam1(unit);
@@ -2442,55 +2337,6 @@ caml_binaryen_string_encode_wtf16_array(value unit) {
   CAMLreturn(alloc_BinaryenOp(op));
 }
 
-CAMLprim value
-caml_binaryen_string_as_wtf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringAsWTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_as_wtf16(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringAsWTF16();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_as_iter(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringAsIter();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_iter_move_advance(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringIterMoveAdvance();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_iter_move_rewind(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringIterMoveRewind();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_slice_wtf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringSliceWTF8();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
-CAMLprim value
-caml_binaryen_string_slice_wtf16(value unit) {
-  CAMLparam1(unit);
-  BinaryenOp op = BinaryenStringSliceWTF16();
-  CAMLreturn(alloc_BinaryenOp(op));
-}
-
 CAMLprim value
 caml_binaryen_string_eq_equal(value unit) {
   CAMLparam1(unit);
diff --git a/src/op.js b/src/op.js
index 1a0f0dce..f99ffd99 100644
--- a/src/op.js
+++ b/src/op.js
@@ -1954,42 +1954,6 @@ function caml_binaryen_br_on_cast_fail() {
   return Binaryen.Operations.BrOnCastFail;
 }
 
-//Provides: caml_binaryen_string_new_utf8
-//Requires: Binaryen
-function caml_binaryen_string_new_utf8() {
-  return Binaryen.Operations.StringNewUTF8;
-}
-
-//Provides: caml_binaryen_string_new_wtf8
-//Requires: Binaryen
-function caml_binaryen_string_new_wtf8() {
-  return Binaryen.Operations.StringNewWTF8;
-}
-
-//Provides: caml_binaryen_string_new_lossy_utf8
-//Requires: Binaryen
-function caml_binaryen_string_new_lossy_utf8() {
-  return Binaryen.Operations.StringNewLossyUTF8;
-}
-
-//Provides: caml_binaryen_string_new_wtf16
-//Requires: Binaryen
-function caml_binaryen_string_new_wtf16() {
-  return Binaryen.Operations.StringNewWTF16;
-}
-
-//Provides: caml_binaryen_string_new_utf8_array
-//Requires: Binaryen
-function caml_binaryen_string_new_utf8_array() {
-  return Binaryen.Operations.StringNewUTF8Array;
-}
-
-//Provides: caml_binaryen_string_new_wtf8_array
-//Requires: Binaryen
-function caml_binaryen_string_new_wtf8_array() {
-  return Binaryen.Operations.StringNewWTF8Array;
-}
-
 //Provides: caml_binaryen_string_new_lossy_utf8_array
 //Requires: Binaryen
 function caml_binaryen_string_new_lossy_utf8_array() {
@@ -2014,120 +1978,24 @@ function caml_binaryen_string_measure_utf8() {
   return Binaryen.Operations.StringMeasureUTF8;
 }
 
-//Provides: caml_binaryen_string_measure_wtf8
-//Requires: Binaryen
-function caml_binaryen_string_measure_wtf8() {
-  return Binaryen.Operations.StringMeasureWTF8;
-}
-
 //Provides: caml_binaryen_string_measure_wtf16
 //Requires: Binaryen
 function caml_binaryen_string_measure_wtf16() {
   return Binaryen.Operations.StringMeasureWTF16;
 }
 
-//Provides: caml_binaryen_string_measure_is_usv
-//Requires: Binaryen
-function caml_binaryen_string_measure_is_usv() {
-  return Binaryen.Operations.StringMeasureIsUSV;
-}
-
-//Provides: caml_binaryen_string_measure_wtf16_view
-//Requires: Binaryen
-function caml_binaryen_string_measure_wtf16_view() {
-  return Binaryen.Operations.StringMeasureWTF16View;
-}
-
-//Provides: caml_binaryen_string_encode_utf8
-//Requires: Binaryen
-function caml_binaryen_string_encode_utf8() {
-  return Binaryen.Operations.StringEncodeUTF8;
-}
-
-//Provides: caml_binaryen_string_encode_lossy_utf8
-//Requires: Binaryen
-function caml_binaryen_string_encode_lossy_utf8() {
-  return Binaryen.Operations.StringEncodeLossyUTF8;
-}
-
-//Provides: caml_binaryen_string_encode_wtf8
-//Requires: Binaryen
-function caml_binaryen_string_encode_wtf8() {
-  return Binaryen.Operations.StringEncodeWTF8;
-}
-
-//Provides: caml_binaryen_string_encode_wtf16
-//Requires: Binaryen
-function caml_binaryen_string_encode_wtf16() {
-  return Binaryen.Operations.StringEncodeWTF16;
-}
-
-//Provides: caml_binaryen_string_encode_utf8_array
-//Requires: Binaryen
-function caml_binaryen_string_encode_utf8_array() {
-  return Binaryen.Operations.StringEncodeUTF8Array;
-}
-
 //Provides: caml_binaryen_string_encode_lossy_utf8_array
 //Requires: Binaryen
 function caml_binaryen_string_encode_lossy_utf8_array() {
   return Binaryen.Operations.StringEncodeLossyUTF8Array;
 }
 
-//Provides: caml_binaryen_string_encode_wtf8_array
-//Requires: Binaryen
-function caml_binaryen_string_encode_wtf8_array() {
-  return Binaryen.Operations.StringEncodeWTF8Array;
-}
-
 //Provides: caml_binaryen_string_encode_wtf16_array
 //Requires: Binaryen
 function caml_binaryen_string_encode_wtf16_array() {
   return Binaryen.Operations.StringEncodeWTF16Array;
 }
 
-//Provides: caml_binaryen_string_as_wtf8
-//Requires: Binaryen
-function caml_binaryen_string_as_wtf8() {
-  return Binaryen.Operations.StringAsWTF8;
-}
-
-//Provides: caml_binaryen_string_as_wtf16
-//Requires: Binaryen
-function caml_binaryen_string_as_wtf16() {
-  return Binaryen.Operations.StringAsWTF16;
-}
-
-//Provides: caml_binaryen_string_as_iter
-//Requires: Binaryen
-function caml_binaryen_string_as_iter() {
-  return Binaryen.Operations.StringAsIter;
-}
-
-//Provides: caml_binaryen_string_iter_move_advance
-//Requires: Binaryen
-function caml_binaryen_string_iter_move_advance() {
-  return Binaryen.Operations.StringIterMoveAdvance;
-}
-
-//Provides: caml_binaryen_string_iter_move_rewind
-//Requires: Binaryen
-function caml_binaryen_string_iter_move_rewind() {
-  return Binaryen.Operations.StringIterMoveRewind;
-}
-
-//Provides: caml_binaryen_string_slice_wtf8
-//Requires: Binaryen
-function caml_binaryen_string_slice_wtf8() {
-  return Binaryen.Operations.StringSliceWTF8;
-}
-
-//Provides: caml_binaryen_string_slice_wtf16
-//Requires: Binaryen
-function caml_binaryen_string_slice_wtf16() {
-  return Binaryen.Operations.StringSliceWTF16;
-}
-
 //Provides: caml_binaryen_string_eq_equal
 //Requires: Binaryen
 function caml_binaryen_string_eq_equal() {
diff --git a/src/op.ml b/src/op.ml
index b181265a..a0091b90 100644
--- a/src/op.ml
+++ b/src/op.ml
@@ -1358,33 +1358,6 @@ external br_on_cast_fail : unit -> t = "caml_binaryen_br_on_cast_fail"
 
 let br_on_cast_fail = br_on_cast_fail ()
 
-external string_new_utf8 : unit -> t = "caml_binaryen_string_new_utf8"
-
-let string_new_utf8 = string_new_utf8 ()
-
-external string_new_wtf8 : unit -> t = "caml_binaryen_string_new_wtf8"
-
-let string_new_wtf8 = string_new_wtf8 ()
-
-external string_new_lossy_utf8 : unit -> t
-  = "caml_binaryen_string_new_lossy_utf8"
-
-let string_new_lossy_utf8 = string_new_lossy_utf8 ()
-
-external string_new_wtf16 : unit -> t = "caml_binaryen_string_new_wtf16"
-
-let string_new_wtf16 = string_new_wtf16 ()
-
-external string_new_utf8_array : unit -> t
-  = "caml_binaryen_string_new_utf8_array"
-
-let string_new_utf8_array = string_new_utf8_array ()
-
-external string_new_wtf8_array : unit -> t
-  = "caml_binaryen_string_new_wtf8_array"
-
-let string_new_wtf8_array = string_new_wtf8_array ()
-
 external string_new_lossy_utf8_array : unit -> t
   = "caml_binaryen_string_new_lossy_utf8_array"
 
@@ -1404,91 +1377,20 @@ external string_measure_utf8 : unit -> t = "caml_binaryen_string_measure_utf8"
 
 let string_measure_utf8 = string_measure_utf8 ()
 
-external string_measure_wtf8 : unit -> t = "caml_binaryen_string_measure_wtf8"
-
-let string_measure_wtf8 = string_measure_wtf8 ()
-
 external string_measure_wtf16 : unit -> t = "caml_binaryen_string_measure_wtf16"
 
 let string_measure_wtf16 = string_measure_wtf16 ()
 
-external string_measure_is_usv : unit -> t
-  = "caml_binaryen_string_measure_is_usv"
-
-let string_measure_is_usv = string_measure_is_usv ()
-
-external string_measure_wtf16_view : unit -> t
-  = "caml_binaryen_string_measure_wtf16_view"
-
-let string_measure_wtf16_view = string_measure_wtf16_view ()
-
-external string_encode_utf8 : unit -> t = "caml_binaryen_string_encode_utf8"
-
-let string_encode_utf8 = string_encode_utf8 ()
-
-external string_encode_lossy_utf8 : unit -> t
-  = "caml_binaryen_string_encode_lossy_utf8"
-
-let string_encode_lossy_utf8 = string_encode_lossy_utf8 ()
-
-external string_encode_wtf8 : unit -> t = "caml_binaryen_string_encode_wtf8"
-
-let string_encode_wtf8 = string_encode_wtf8 ()
-
-external string_encode_wtf16 : unit -> t = "caml_binaryen_string_encode_wtf16"
-
-let string_encode_wtf16 = string_encode_wtf16 ()
-
-external string_encode_utf8_array : unit -> t
-  = "caml_binaryen_string_encode_utf8_array"
-
-let string_encode_utf8_array = string_encode_utf8_array ()
-
 external string_encode_lossy_utf8_array : unit -> t
   = "caml_binaryen_string_encode_lossy_utf8_array"
 
 let string_encode_lossy_utf8_array = string_encode_lossy_utf8_array ()
 
-external string_encode_wtf8_array : unit -> t
-  = "caml_binaryen_string_encode_wtf8_array"
-
-let string_encode_wtf8_array = string_encode_wtf8_array ()
-
 external string_encode_wtf16_array : unit -> t
   = "caml_binaryen_string_encode_wtf16_array"
 
 let string_encode_wtf16_array = string_encode_wtf16_array ()
 
-external string_as_wtf8 : unit -> t = "caml_binaryen_string_as_wtf8"
-
-let string_as_wtf8 = string_as_wtf8 ()
-
-external string_as_wtf16 : unit -> t = "caml_binaryen_string_as_wtf16"
-
-let string_as_wtf16 = string_as_wtf16 ()
-
-external string_as_iter : unit -> t = "caml_binaryen_string_as_iter"
-
-let string_as_iter = string_as_iter ()
-
-external string_iter_move_advance : unit -> t
-  = "caml_binaryen_string_iter_move_advance"
-
-let string_iter_move_advance = string_iter_move_advance ()
-
-external string_iter_move_rewind : unit -> t
-  = "caml_binaryen_string_iter_move_rewind"
-
-let string_iter_move_rewind = string_iter_move_rewind ()
-
-external string_slice_wtf8 : unit -> t = "caml_binaryen_string_slice_wtf8"
-
-let string_slice_wtf8 = string_slice_wtf8 ()
-
-external string_slice_wtf16 : unit -> t = "caml_binaryen_string_slice_wtf16"
-
-let string_slice_wtf16 = string_slice_wtf16 ()
-
 external string_eq_equal : unit -> t = "caml_binaryen_string_eq_equal"
 
 let string_eq_equal = string_eq_equal ()
diff --git a/src/op.mli b/src/op.mli
index 18eea0e9..66261ea4 100644
--- a/src/op.mli
+++ b/src/op.mli
@@ -326,34 +326,12 @@ val br_on_null : t
 val br_on_non_null : t
 val br_on_cast : t
 val br_on_cast_fail : t
-val string_new_utf8 : t
-val string_new_wtf8 : t
-val string_new_lossy_utf8 : t
-val string_new_wtf16 : t
-val string_new_utf8_array : t
-val string_new_wtf8_array : t
 val string_new_wtf16_array : t
 val string_new_from_code_point : t
 val string_measure_utf8 : t
-val string_measure_wtf8 : t
 val string_new_lossy_utf8_array : t
 val string_measure_wtf16 : t
-val string_measure_is_usv : t
-val string_measure_wtf16_view : t
-val string_encode_utf8 : t
-val string_encode_lossy_utf8 : t
-val string_encode_wtf8 : t
-val string_encode_wtf16 : t
-val string_encode_utf8_array : t
 val string_encode_lossy_utf8_array : t
-val string_encode_wtf8_array : t
 val string_encode_wtf16_array : t
-val string_as_wtf8 : t
-val string_as_wtf16 : t
-val string_as_iter : t
-val string_iter_move_advance : t
-val string_iter_move_rewind : t
-val string_slice_wtf8 : t
-val string_slice_wtf16 : t
 val string_eq_equal : t
 val string_eq_compare : t
diff --git a/src/type.c b/src/type.c
index f5c969a1..43855ec5 100644
--- a/src/type.c
+++ b/src/type.c
@@ -97,27 +97,6 @@ caml_binaryen_type_stringref(value unit) {
   CAMLreturn(alloc_BinaryenType(ty));
 }
 
-CAMLprim value
-caml_binaryen_type_stringview_wtf8(value unit) {
-  CAMLparam1(unit);
-  BinaryenType ty = BinaryenTypeStringviewWTF8();
-  CAMLreturn(alloc_BinaryenType(ty));
-}
-
-CAMLprim value
-caml_binaryen_type_stringview_wtf16(value unit) {
-  CAMLparam1(unit);
-  BinaryenType ty = BinaryenTypeStringviewWTF16();
-  CAMLreturn(alloc_BinaryenType(ty));
-}
-
-CAMLprim value
-caml_binaryen_type_stringview_iter(value unit) {
-  CAMLparam1(unit);
-  BinaryenType ty = BinaryenTypeStringviewIter();
-  CAMLreturn(alloc_BinaryenType(ty));
-}
-
 CAMLprim value
 caml_binaryen_type_nullref(value unit) {
   CAMLparam1(unit);
diff --git a/src/type.js b/src/type.js
index 1b4911f6..23350368 100644
--- a/src/type.js
+++ b/src/type.js
@@ -77,24 +77,6 @@ function caml_binaryen_type_stringref() {
   return Binaryen.stringref;
 }
 
-//Provides: caml_binaryen_type_stringview_wtf8
-//Requires: Binaryen
-function caml_binaryen_type_stringview_wtf8() {
-  return Binaryen.stringview_wtf8;
-}
-
-//Provides: caml_binaryen_type_stringview_wtf16
-//Requires: Binaryen
-function caml_binaryen_type_stringview_wtf16() {
-  return Binaryen.stringview_wtf16;
-}
-
-//Provides: caml_binaryen_type_stringview_iter
-//Requires: Binaryen
-function caml_binaryen_type_stringview_iter() {
-  return Binaryen.stringview_iter;
-}
-
 //Provides: caml_binaryen_type_nullref
 //Requires: Binaryen
 function caml_binaryen_type_nullref() {
diff --git a/src/type.ml b/src/type.ml
index e39bd1db..119be8cc 100644
--- a/src/type.ml
+++ b/src/type.ml
@@ -52,18 +52,6 @@ external stringref : unit -> t = "caml_binaryen_type_stringref"
 
 let stringref = stringref ()
 
-external stringview_wtf8 : unit -> t = "caml_binaryen_type_stringview_wtf8"
-
-let stringview_wtf8 = stringview_wtf8 ()
-
-external stringview_wtf16 : unit -> t = "caml_binaryen_type_stringview_wtf16"
-
-let stringview_wtf16 = stringview_wtf16 ()
-
-external stringview_iter : unit -> t = "caml_binaryen_type_stringview_iter"
-
-let stringview_iter = stringview_iter ()
-
 external nullref : unit -> t = "caml_binaryen_type_nullref"
 
 let nullref = nullref ()
diff --git a/src/type.mli b/src/type.mli
index c0bc8e6a..874ddb37 100644
--- a/src/type.mli
+++ b/src/type.mli
@@ -13,9 +13,6 @@ val i31ref : t
 val structref : t
 val arrayref : t
 val stringref : t
-val stringview_wtf8 : t
-val stringview_wtf16 : t
-val stringview_iter : t
 val nullref : t
 val null_externref : t
 val null_funcref : t
diff --git a/test/dune b/test/dune
index 57a1356f..e9f7192b 100644
--- a/test/dune
+++ b/test/dune
@@ -5,8 +5,7 @@
  (flags
   :standard
   (:include ./config/ocamlopt_flags.sexp))
- (js_of_ocaml
-  (flags --no-sourcemap)))
+ (js_of_ocaml))
 
 (rule
  (alias runtest)
diff --git a/test/test.expected b/test/test.expected
index 2917ebc0..8e1c7db2 100644
--- a/test/test.expected
+++ b/test/test.expected
@@ -7,28 +7,30 @@
  (i32.const 0)
 )
 (module
- (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
- (type $none_=>_none (func))
- (type $anyref_i32_i32_=>_i32 (func (param anyref i32 i32) (result i32)))
- (type $anyref_=>_i32 (func (param anyref) (result i32)))
- (import "future-wasi" "write" (func $write (type $anyref_i32_i32_=>_i32) (param anyref i32 i32) (result i32)))
+ (type $0 (func (param i32 i32) (result i32)))
+ (type $1 (func))
+ (type $2 (func (param anyref i32 i32) (result i32)))
+ (type $3 (func (param anyref) (result i32)))
+ (import "future-wasi" "write" (func $write (type $2) (param anyref i32 i32) (result i32)))
  (global $max_int64 i64 (i64.const 9223372036854775807))
  (global $max_int64_mut (mut i64) (i64.const 9223372036854775807))
  (global $test_float64_bits f64 (f64.const 1.23))
  (memory $0 1)
- (data $0 (i32.const 0) "hello")
- (data $1 "world")
+ (data $hello (i32.const 0) "hello")
+ (data $world "world")
  (table $table 1 1 funcref)
  (elem $elem (i32.const 0) $adder)
  (export "adder" (func $adder))
  (export "memory" (memory $0))
  (export "hello" (func $hello))
  (start $start)
- (func $adder (type $i32_i32_=>_i32) (param $0 i32) (param $1 i32) (result i32)
+ (func $adder (type $0) (param $0 i32) (param $1 i32) (result i32)
   (block $add (result i32)
    (if
     (i32.const 0)
-    (unreachable)
+    (then
+     (unreachable)
+    )
    )
    (i32.add
     (select
@@ -42,15 +44,15 @@
    )
   )
  )
- (func $start (type $none_=>_none)
+ (func $start (type $1)
   (block $start
-   (memory.init $1
+   (memory.init $world
     (i32.const 2048)
     (i32.const 0)
     (i32.const 5)
    )
    (drop
-    (call_indirect $table (type $i32_i32_=>_i32)
+    (call_indirect $table (type $0)
      (i32.const 3)
      (i32.const 5)
      (i32.const 0)
@@ -58,7 +60,7 @@
    )
   )
  )
- (func $hello (type $anyref_=>_i32) (param $0 anyref) (result i32)
+ (func $hello (type $3) (param $0 anyref) (result i32)
   (call $write
    (local.get $0)
    (i32.const 0)
@@ -67,21 +69,21 @@
  )
 )
 (module
- (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
- (type $none_=>_none (func))
- (type $anyref_i32_i32_=>_i32 (func (param anyref i32 i32) (result i32)))
- (type $anyref_=>_i32 (func (param anyref) (result i32)))
- (import "future-wasi" "write" (func $write (type $anyref_i32_i32_=>_i32) (param anyref i32 i32) (result i32)))
+ (type $0 (func (param i32 i32) (result i32)))
+ (type $1 (func))
+ (type $2 (func (param anyref i32 i32) (result i32)))
+ (type $3 (func (param anyref) (result i32)))
+ (import "future-wasi" "write" (func $write (type $2) (param anyref i32 i32) (result i32)))
  (memory $0 1)
- (data $0 (i32.const 0) "hello")
- (data $1 "world")
+ (data $hello (i32.const 0) "hello")
+ (data $world "world")
  (table $table 1 1 funcref)
  (elem $elem (i32.const 0) $adder)
  (export "adder" (func $adder))
  (export "memory" (memory $0))
  (export "hello" (func $hello))
  (start $start)
- (func $adder (type $i32_i32_=>_i32) (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
+ (func $adder (type $0) (param $0 i32) (param $1 i32) (result i32)
   (i32.add
    (select
     (local.get $0)
@@ -93,8 +95,8 @@
    (local.get $1)
   )
  )
- (func $start (type $none_=>_none) (; has Stack IR ;)
-  (memory.init $1
+ (func $start (type $1)
+  (memory.init $world
    (i32.const 2048)
    (i32.const 0)
    (i32.const 5)
@@ -106,7 +108,7 @@
    )
   )
  )
- (func $hello (type $anyref_=>_i32) (; has Stack IR ;) (param $0 anyref) (result i32)
+ (func $hello (type $3) (param $0 anyref) (result i32)
   (call $write
    (local.get $0)
    (i32.const 0)
@@ -115,11 +117,11 @@
  )
 )
 (module
- (type $type$0 (func (param anyref i32 i32) (result i32)))
- (type $type$1 (func (param i32 i32) (result i32)))
- (type $type$2 (func))
- (type $type$3 (func (param anyref) (result i32)))
- (import "future-wasi" "write" (func $fimport$0 (type $type$0) (param anyref i32 i32) (result i32)))
+ (type $type (func (param anyref i32 i32) (result i32)))
+ (type $type_1 (func (param i32 i32) (result i32)))
+ (type $type_2 (func))
+ (type $type_3 (func (param anyref) (result i32)))
+ (import "future-wasi" "write" (func $fimport$0 (type $type) (param anyref i32 i32) (result i32)))
  (memory $0 1)
  (data $0 (i32.const 0) "hello")
  (data $1 "world")
@@ -129,7 +131,7 @@
  (export "memory" (memory $0))
  (export "hello" (func $2))
  (start $1)
- (func $0 (type $type$1) (param $0 i32) (param $1 i32) (result i32)
+ (func $0 (type $type_1) (param $0 i32) (param $1 i32) (result i32)
   (i32.add
    (select
     (local.get $0)
@@ -141,7 +143,7 @@
    (local.get $1)
   )
  )
- (func $1 (type $type$2)
+ (func $1 (type $type_2)
   (memory.init $1
    (i32.const 2048)
    (i32.const 0)
@@ -154,7 +156,7 @@
    )
   )
  )
- (func $2 (type $type$3) (param $0 anyref) (result i32)
+ (func $2 (type $type_3) (param $0 anyref) (result i32)
   (call $fimport$0
    (local.get $0)
    (i32.const 0)
@@ -163,11 +165,11 @@
  )
 )
 (module
- (type $type$0 (func (param anyref i32 i32) (result i32)))
- (type $type$1 (func (param i32 i32) (result i32)))
- (type $type$2 (func))
- (type $type$3 (func (param anyref) (result i32)))
- (import "future-wasi" "write" (func $fimport$0 (type $type$0) (param anyref i32 i32) (result i32)))
+ (type $type (func (param anyref i32 i32) (result i32)))
+ (type $type_1 (func (param i32 i32) (result i32)))
+ (type $type_2 (func))
+ (type $type_3 (func (param anyref) (result i32)))
+ (import "future-wasi" "write" (func $fimport$0 (type $type) (param anyref i32 i32) (result i32)))
  (memory $0 1)
  (data $0 (i32.const 0) "hello")
  (data $1 "world")
@@ -177,26 +179,26 @@
  (export "memory" (memory $0))
  (export "hello" (func $2))
  (start $1)
- (func $0 (type $type$1) (param $0 i32) (param $1 i32) (result i32)
+ (func $0 (type $type_1) (param $0 i32) (param $1 i32) (result i32)
   local.get $0
   local.get $1
-  i32.load $0
+  i32.load
   i32.const 1
   select
   local.get $1
   i32.add
  )
- (func $1 (type $type$2)
+ (func $1 (type $type_2)
   i32.const 2048
   i32.const 0
   i32.const 5
-  memory.init $0 $1
+  memory.init $1
   i32.const 3
   i32.const 5
   call $0
   drop
  )
- (func $2 (type $type$3) (param $0 anyref) (result i32)
+ (func $2 (type $type_3) (param $0 anyref) (result i32)
   local.get $0
   i32.const 0
   i32.const 1
diff --git a/test/test.ml b/test/test.ml
index b8f3e2de..0eb4b9c7 100644
--- a/test/test.ml
+++ b/test/test.ml
@@ -97,7 +97,7 @@ let start =
   Function.add_function wasm_mod "start" Type.none Type.none [||]
     (Expression.Block.make wasm_mod ~return_type:Type.none "start"
        [
-         Expression.Memory_init.make wasm_mod 1
+         Expression.Memory_init.make wasm_mod "world"
            (Expression.Const.make wasm_mod (Literal.int32 2048l))
            (Expression.Const.make wasm_mod (Literal.int32 0l))
            (Expression.Const.make wasm_mod (Literal.int32 5l))
@@ -157,13 +157,13 @@ let segment : Binaryen.Memory.segment =
       { offset = Expression.Const.make wasm_mod (Literal.int32 0l) }
   in
   let size = Bytes.length data in
-  { data; kind; size }
+  { name = "hello"; data; kind; size }
 
 let passive_segment : Binaryen.Memory.segment =
   let data = Bytes.of_string "world" in
   let kind = Binaryen.Memory.Passive in
   let size = Bytes.length data in
-  { data; kind; size }
+  { name = "world"; data; kind; size }
 
 let _ = assert (Memory.has_memory wasm_mod = false)
 
@@ -183,7 +183,9 @@ let _ = assert (Memory.get_max max_memory_wasm_mod "0" = 2)
 
 let _ =
   assert (
-    Bytes.equal (Memory.get_segment_data wasm_mod 1) (Bytes.of_string "world"))
+    Bytes.equal
+      (Memory.get_segment_data wasm_mod "world")
+      (Bytes.of_string "world"))
 
 (* Create an imported "write" function i32 (externref, i32, i32) *)
 (* Similar to the example here: https://bytecodealliance.org/articles/reference-types-in-wasmtime *)
@@ -270,13 +272,13 @@ let _ =
       Module.Feature.relaxed_simd;
       Module.Feature.extended_const;
       Module.Feature.strings;
-      Module.Feature.multi_memories;
+      Module.Feature.multi_memory;
       Module.Feature.all;
     ]
 
 let _ = Module.validate new_mod
 let _ = Module.print new_mod
-let _ = Module.print_stack_ir new_mod false
+let _ = Module.print_stack_ir new_mod
 
 (* Dispose the modules 👋 *)