From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Authentication-Results: plum.tunbury.org; dkim=pass (1024-bit key; unprotected) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=gtyEu5LY; dkim-atps=neutral Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.134.164.83; helo=mail2-relais-roc.national.inria.fr; envelope-from=caml-list-owner@inria.fr; receiver=tunbury.org Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by plum.tunbury.org (Postfix) with ESMTP id EB78E400A2 for ; Tue, 24 Mar 2026 09:58:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=from:to:date:message-id:mime-version:subject:reply-to: sender:list-id:list-help:list-subscribe:list-unsubscribe: list-post:list-owner:list-archive; bh=TZ0M/ij2qif/o09jsx1TjgUCuT1zkSkIkyfE4q/Z1E8=; b=gtyEu5LYs0KVWJB10uPg/qBNwUBO+w2OScGD0/QJN9zJiepSwK3FgXTF x8mfvVlpk8ESQ8BNxDji9pcRt6WDV6KjBTB2b+PGDASkQzDcOSeKStvGH vbfqfyGAWDmXB5flkWSXeaWEi3EKSN8bLCMk9JjkNcuQp6lONoIF4YyYX w=; X-CSE-ConnectionGUID: REsEHG4aTvGzwIKbwtzg3g== X-CSE-MsgGUID: +J4VDfs4T4q95ejV9lRbaw== Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@prod-sympa-app.inria.fr Received-SPF: SoftFail (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr is inclined to not designate 128.93.162.27 as permitted sender) identity=mailfrom; client-ip=128.93.162.27; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="caml-list-owner@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 include:mailout.safebrands.com a:basic-mail.safebrands.com a:basic-mail01.safebrands.com a:basic-mail02.safebrands.com ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:128.93.162.3 ip4:128.93.162.88 ip4:89.107.174.7 mx ~all" Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@prod-sympa-app.inria.fr) identity=helo; client-ip=128.93.162.27; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@prod-sympa-app.inria.fr"; x-conformance=spf_only X-IronPort-AV: E=Sophos;i="6.23,138,1770591600"; d="scan'208,217";a="269190315" Received: from prod-sympa-app.inria.fr ([128.93.162.27]) by mail2-relais-roc.national.inria.fr with ESMTP; 24 Mar 2026 10:58:18 +0100 Received: by prod-sympa-app.inria.fr (Postfix, from userid 990) id 8192982B99; Tue, 24 Mar 2026 10:58:18 +0100 (CET) Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by prod-sympa-app.inria.fr (Postfix) with ESMTP id E019581672 for ; Tue, 24 Mar 2026 10:58:08 +0100 (CET) X-CSE-ConnectionGUID: ABnNY9wUS42L/vEgDMujqA== X-CSE-MsgGUID: 5n5hNDnBSSmQqzQ3BIpe2g== IronPort-SDR: 69c2602f_MXB6zCkFf1W5aR0S5M0sgNzJq08lnCJYwA9/JgbF8rb7Rt+ qwDlialUmd2m09wUFxQiYJAT6KDv+WkGAXB4C/Q== X-ThreatScanner-Verdict: Negative X-IPAS-Result: =?us-ascii?q?A0FyAwB+XsJphSIeaIFahBaBBBoBbF8zBwhJVYQDgWOBb?= =?us-ascii?q?I4lnEiBaYEsFhgLFQEDAQ0uARUKAQIEAQEDAQIBg0lxRgIWjQ4CHwYBBDQTA?= =?us-ascii?q?QIEAQEBAQMCAwEBAQEBAQEBAQ0BAQUBAQECAQECBAYBAhABAQEBQEmGFQczD?= =?us-ascii?q?YJFUXFgBAMGOAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQIECAGBJwQGEwEBOBgjAxAEAQYDAgQNATUXARIagmgBgiACAk8DB?= =?us-ascii?q?QwGlRebRHp/M4EBggwBAQaBCD4CEw/aQIFnCYFNhW+CShwBKklsAQKETgmEN?= =?us-ascii?q?icPgVVEgyBub4JKFwEBAQGBKQERAgEaDyQJgyWCaYImehQdgWIFhA4GhCoFH?= =?us-ascii?q?TWHDoFEIgMmMywBVRMXCwcFXoEIAyovLW4yHYEjPhc0WBsHBYJJD4hxgWGBE?= =?us-ascii?q?4QjAwttPTcUG41VQxk2gTgvDkAwGwwJGhMBKQIgAjYOFRU1IxwuCz2SVygqA?= =?us-ascii?q?p1ylGM0B4QfgV4GDIkIgSaWB4QEjROZVCKYZCKJXoEmCYFva4h5jGcIC4VFg?= =?us-ascii?q?X8jbD8xMxowQw0GgiABMwlGHA+JNoRJhCJvT4EmgXQ7wxZCNQIBATsHAgcOA?= =?us-ascii?q?oVOHQEBjDqBSwEB?= IronPort-PHdr: A9a23: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 Xh9Cmw5XkKRy43Z7Vz0t40= IronPort-Data: A9a23:0zzPiKgTlM7eUhE01pZ70gndX161shQKZh0ujC45NGQN5FlHY01je htvCm2Aa/iLY2H9ct13O42wo04G6p/Un95iQQQ4qC02QSljpJueD7x1DG+gZnLIdpWroGFPt phFNIGYdKjYaleG+39B55C49SEUOZmgH+e6VaidfHgsGGeIcQ954Tp7gek1n4V0ttawBgKJq LvartbWULOf82cc3lk8teTZ83uDgNyo4GlG5gdkPqgR1LPjvyB94Kw3dfnZw0TQGdE88t6SH 47r0Ly/92XFyBYhYvvNuqr7aEADXonJNgGIjHdMM4D66vSVjnFaPg4TbZLwWG8P49m7t4gZJ OZl6fRcfTwU0pjkw4zxZfX3/xZWZsWq8JefSZS2XFf6I0fuKxMAyN02ZK060BFxFk+azgii+ NRBQA3hYCxviMqf6rSde7hzu/9/du2sIq4QllR9zyjwWKNOrZDrG80m5PddzG52nsdKDOrTb MofaCNyYVLHeRIn1lU/Uchv2r7w2j+kK3sD9Dp5poJvi4TX5DdL6+C4It/tR4mgdJBNmUKJu m/N/2L4GwwXctuFxm+M9nuqwPTEnSb6RJ46Hrql8PVnmxuWmnxVDwcZPbe+iaDl0BfgAIwPd ST4/AJzq/Uy0mCtZOLGWiShskfflD8EVoBfRrhSBAalkfeIvV3GXgDoVAVpY9UjsIoyRCc2/ kSYmsvgQz1pqrycD3yHnop4thu3KXFTNWgGdDMJRgsD4sD+rcc0lB2nostf/LCdp/fzPwCh3 A2x8HIawKs+guIuyqei1AWS696znaQlWDLZ8S35ZAqYAu5RYZ78IZSv7UnH4P1AKoeAU1THu 2IL8yR/0AzsJc/d/MBuaLxSdF1M2xpjGGaD6bKIN8J8nwlBA1b5IehtDMhWfS+FyProhgMFk GeI5F8Pv8ALVJdbRaJ8ZIa8Q9wtybn8GN/lUPHNc9cGb4BqfxfvwRyCkXW4hji3+GB1yPFXE cnAK66EUy1FYZmLORLtHI/xJ5dwnXhmnQs+hPnTk3ya7FZpTCTMFepabwfUPr1RAWHtiFy9z uuz/vCik313ONASqAGOmWLKBQFbdSoIFtrtptZJd+WOBANjFStzQ7XS2L4tMcgt1ahciu6Cr Dn3V1562WjPoyTNCTyLTXR/N5Lpf5J09kwgMQIWYF2H5nkEYKSU1pk5SacZR7cc2dJG8e9VV NgAIsWJPeROQG/I+hMbdpjMk7ZhfxWK2yOLZnaAW2UgdcRwGgDmxN3tUVb3/xkwCg6y5NoMs py79wbhWZFYbR9TPMXXT/OOzl2KonkWntxpbXbIOtV+fEbN8pBgDj7Y19sbApgrB03Y5z240 w22P08pldPVqdVozOiT1LG2kYi5NsBfQGxYJjD/xpSrP3D4+mGD/9dxYNyQd2qAaFKuqbSQX sQL/fTSK/ZdoU1rtbB7GLNVza4TwdvjirtZ7wZ8FkXwcFWZJeJ8E0aCwPVwmPVB9p1BtSuyf 3C/yN1QFLGKGcHiSXo6Bg4uaMad3vA1xBjWy9kII3vB2Swmx4rfDH1uPCSNhhdNc5pzEocum tk6tOAstgeQtxsNM/S9tB5yyViiFHI7fp8chskoO7Oz0gsP4XNeUKPYER7zsc2uac0TE0wEI Q20pavlhpZDzBDSLnYcK3rE8rdFjqQwvDRPnU4wNnWSu9//nvRs9gZgwTc2aQV0zxt8zON4P FZwBXB1Pamj+zRJhtBJemKRRzF6GxyS/3Lux2szlGH2S1eiUkrPJjYfPdmh0V848WUGWBRm5 5CdlXjYVAj1cPHL3icdXVBvr9rhR4dT8izAgMWWINSXLaIlYDbKgr6cWkRQkkHJWfgOvUzgo fVm2M1SaqehbC4ZnPAdOrmgjL8VTEiJGXxGTfRf55g2JGD7egyp+D2wOku0K9JsJfvLzBeCM PZQBPlzDjaw6CXfiQogJ/8oA6R1l/sX9tY9auvVBWoZgYC+8BttkrztrxbbukF6belqo8gHL qHpSwmjCU2V3HtdpH/MppJLO02+etg1Wzf/1+GUrsQMNYwPj7xuQ3EXz7GIhSmxNVp2zQO1p yLGXbfdlMZ5+LRvnqztM6RNPBq1ItXNT9a18Bi/ntBNTNHXO+LMil8lkUbmNAFoIrchYdR7u rCTutrR3kmenrIJf03GupuGTY9l2N6TWbdJD8fJM3VqpyuOd8vy6R8l+WrjC5hokstY1/a3V TmDd8q8Wt4EaehznEQPRXBlLC8cLKDrYoPLhyC39a2MAydA9z33Foqs8HuxYFxLciMNBYbFN Tb1nPST/fFdkpVHAU4VJvNhAqIgGmTZZ4kdS4TTuwWbX06SuXHTiou6wFBkoXvOB2KfGcn33 YPdS1KsPF6usaXP15dCv5Y0ohQTC21njPItel4GveR7kC2+EHVMONF13U/q0X2IuneaOFDEi DDxgK8KDDWkGyxDdQTg7d/jWAaGG+FIPc32TtDs113BcD+4XetsH5M4nhqMIV8vEtcg8A1jA dsZ53v7MwP3x815A+EJ6ZRXRM95k+jCyCtgFV/VyqTP7tV3PVnO/GRmGBtRWCfHFcDUiUiNI nI6LYyBrIdXVmapeftdl7Vp9N31cd8hI/jErctC/ToHh7im8Q== IronPort-HdrOrdr: A9a23:5prJG6ixCMg4b2jMCP2aL9Ufw3BQXtkji2hC6mlwRA09TyXPrb HMoB17726TtN9/YhsdcLy7VJVoBEmskKKdgrNhWotKPjOGhILAFugLhrcKgQeQfxEWkNQz6U 4KScZD4bPLYGSSpPyKgjVQa+xB/OW6 X-Talos-CUID: 9a23:5R2402+aEV8BE1RYg8qVv2c+HOYUI2Lg9yuKBwimJGlFbaCXUHbFrQ== X-Talos-MUID: 9a23:3wEShwXSupNlzaTq/GLq2TFEGMFC2J+rMVkfqM4smtGJbyMlbg== X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.23,138,1770591600"; d="scan'208,217";a="142163686" X-MGA-submission: =?us-ascii?q?MDFpUl+YKSw6pPjiLqFymkFcbb6AUT6x9LeB5+?= =?us-ascii?q?cLMaTQ4RFtWdaWyML0YOhrojR4lDmqsQBQktm1CpLfAJpGRLPhTCKUpZ?= =?us-ascii?q?SAS+F7LSdDoYyQ56KSRv80l4x0pxTK33RsWwwWHMJHxoZq4c9nRb3YMt?= =?us-ascii?q?yxYs5RvzzVnyOubgXluqLt4A=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Mar 2026 10:58:08 +0100 Received: from TM.local (unknown [131.254.161.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 0D19F1A425; Tue, 24 Mar 2026 10:58:07 +0100 (CET) From: Alan Schmitt To: "lwn" , caml-list@inria.fr Date: Tue, 24 Mar 2026 10:58:06 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Mar 24 10:58:07 2026 +0100 (CET)) X-Spam-Flag: Unsure, tests=bogofilter, spamicity=0.500000, queueID=320D71A405 X-Org-Mail: alan.schmitt.1995@polytechnique.org Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News Reply-To: Alan Schmitt X-Loop: caml-list@inria.fr X-Sequence: 19474 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8NCg0KSGVyZSBpcyB0aGUgbGF0ZXN0IE9DYW1sIFdlZWtseSBOZXdzLCBmb3IgdGhlIHdl ZWsgb2YgTWFyY2ggMTcgdG8gMjQsDQoyMDI2Lg0KDQpUYWJsZSBvZiBDb250ZW50cw0K4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCkludHJvZHVj aW5nIGF0ZG1sIChleHBlcmltZW50YWwpDQpFeHBlcmltZW50YWwgbW9kdWxlIGltcG9ydHMgaW4g QVREIChBVEQgNC4wLjApDQpEdW5lIDMuMjINClBhcnNlZmY6IHBhcnNlciBjb21iaW5hdG9yIGxp YnJhcnkgZm9yIE9DYW1sIDUNCk91dHJlYWNoeSBEZW1vIERheSBmb3IgRGVjZW1iZXIgMjAyNSBS b3VuZA0KT2xkIENXTg0KDQoNCkludHJvZHVjaW5nIGF0ZG1sIChleHBlcmltZW50YWwpDQrilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBBcmNoaXZlOg0KICA8aHR0 cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2Fubi1pbnRyb2R1Y2luZy1hdGRtbC1leHBlcmltZW50 YWwvMTc5MDgvMT4NCg0KDQpNYXJ0aW4gSmFtYm9uIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoN CiAgQVREIDQuMC4wIHdhcyByZWxlYXNlZCB0b2RheSBvbiBvcGFtLg0KDQogIFRoaXMgcmVsZWFz ZSBpbnRyb2R1Y2VzICphdGRtbCosIGFuIGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBmb3INCiAg YXRkZ2VuLg0KDQogIFRoZSBnb2FsIGlzIHRvIG1vZGVybml6ZSB0aGUgaW1wbGVtZW50YXRpb24g YW5kIG1ha2UgaXQgZWFzaWVyIHRvDQogIGV4dGVuZCwgd2hpbGUga2VlcGluZyBjb21wYXRpYmls aXR5IHdpdGggZXhpc3RpbmcgQVREIHdvcmtmbG93cy4NCg0KICBIZXJlJ3MgYSBzYW1wbGUgaW5w dXQgZmlsZSBgZXhhbXBsZS5hdGQnOg0KICDilIzilIDilIDilIDilIANCiAg4pSCIHR5cGUgbG9j YXRpb24gPSB7DQogIOKUgiAgIHJvdzogaW50Ow0KICDilIIgICBjb2x1bW46IGludDsNCiAg4pSC ICAgP2ZpbGU6IHN0cmluZyBvcHRpb247DQogIOKUgiB9DQogIOKUlOKUgOKUgOKUgOKUgA0KDQog IEF0ZG1sIGlzIGludm9rZWQgYXMgZm9sbG93cywgbm9ybWFsbHkgYnkgdGhlIGJ1aWxkIHN5c3Rl bToNCiAg4pSM4pSA4pSA4pSA4pSADQogIOKUgiAkIGF0ZG1sIGV4YW1wbGUuYXRkDQogIOKUlOKU gOKUgOKUgOKUgA0KDQogIEl0IHByb2R1Y2VzIGEgcGFpciBvZiBtbGkgYW5kIG1sIGZpbGVzLiBU aGlzIGlzIGBleGFtcGxlLm1saSc6DQogIOKUjOKUgOKUgOKUgOKUgA0KICDilIIgKCogQXV0by1n ZW5lcmF0ZWQgZnJvbSAiZXhhbXBsZS5hdGQiIGJ5IGF0ZG1sLiAqKQ0KICDilIIgDQogIOKUgiB0 eXBlIGxvY2F0aW9uID0gew0KICDilIIgICByb3c6IGludDsNCiAg4pSCICAgY29sdW1uOiBpbnQ7 DQogIOKUgiAgIGZpbGU6IHN0cmluZyBvcHRpb247DQogIOKUgiB9DQogIOKUgiANCiAg4pSCIHZh bCBjcmVhdGVfbG9jYXRpb24gOiByb3c6aW50IC0+IGNvbHVtbjppbnQgLT4gP2ZpbGU6c3RyaW5n IC0+IHVuaXQgLT4gbG9jYXRpb24NCiAg4pSCIHZhbCBsb2NhdGlvbl9vZl95b2pzb24gOiBZb2pz b24uU2FmZS50IC0+IGxvY2F0aW9uDQogIOKUgiB2YWwgeW9qc29uX29mX2xvY2F0aW9uIDogbG9j YXRpb24gLT4gWW9qc29uLlNhZmUudA0KICDilIIgdmFsIGxvY2F0aW9uX29mX2pzb24gOiBzdHJp bmcgLT4gbG9jYXRpb24NCiAg4pSCIHZhbCBqc29uX29mX2xvY2F0aW9uIDogbG9jYXRpb24gLT4g c3RyaW5nDQogIOKUgiANCiAg4pSCIG1vZHVsZSBMb2NhdGlvbiA6IHNpZw0KICDilIIgICB0eXBl IG5vbnJlYyB0ID0gbG9jYXRpb24NCiAg4pSCICAgdmFsIGNyZWF0ZSA6IHJvdzppbnQgLT4gY29s dW1uOmludCAtPiA/ZmlsZTpzdHJpbmcgLT4gdW5pdCAtPiB0DQogIOKUgiAgIHZhbCBvZl95b2pz b24gOiBZb2pzb24uU2FmZS50IC0+IHQNCiAg4pSCICAgdmFsIHRvX3lvanNvbiA6IHQgLT4gWW9q c29uLlNhZmUudA0KICDilIIgICB2YWwgb2ZfanNvbiA6IHN0cmluZyAtPiB0DQogIOKUgiAgIHZh bCB0b19qc29uIDogdCAtPiBzdHJpbmcNCiAg4pSCIGVuZA0KICDilJTilIDilIDilIDilIANCg0K ICBSZWxlYXNlIG5vdGVzOiA8aHR0cHM6Ly9naXRodWIuY29tL2FocmVmcy9hdGQvcmVsZWFzZXMv dGFnLzQuMC4wPg0KDQogIERvY3VtZW50YXRpb246IDxodHRwczovL2F0ZC5yZWFkdGhlZG9jcy5p by8+DQoNCiAgUHJvamVjdCBwYWdlOiA8aHR0cHM6Ly9naXRodWIuY29tL2FocmVmcy9hdGQ+DQoN Cg0KRXhwZXJpbWVudGFsIG1vZHVsZSBpbXBvcnRzIGluIEFURCAoQVREIDQuMC4wKQ0K4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5vY2Ft bC5vcmcvdC9hbm4tZXhwZXJpbWVudGFsLW1vZHVsZS1pbXBvcnRzLWluLWF0ZC1hdGQtNC0wLTAv MTc5MDkvMT4NCg0KDQpNYXJ0aW4gSmFtYm9uIGFubm91bmNlZA0K4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAg QVREIDQuMC4wIGFkZHMgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIGltcG9ydHMgYmV0d2VlbiBB VEQgZmlsZXMuDQoNCiAgVGhpcyBhbGxvd3Mgc3BsaXR0aW5nIHNjaGVtYXMgYWNyb3NzIG11bHRp cGxlIGZpbGVzIGluIGEgbmF0dXJhbCB3YXkuDQoNCiAgQ3VycmVudGx5IHN1cHBvcnRlZCBpbjoN CiAg4oCiIGF0ZG1sIChPQ2FtbCkNCiAg4oCiIGF0ZHB5IChQeXRob24pDQogIOKAoiBhdGR0cyAo VHlwZVNjcmlwdCkNCg0KICBFeGFtcGxlOg0KICDilIzilIDilIDilIDilIANCiAg4pSCIGZyb20g dXRpbHMgYXMgdSBpbXBvcnQgZW1haWwNCiAg4pSCIA0KICDilIIgdHlwZSBlbWFpbF9hZGRyZXNz ZXMgPSB1LmVtYWlsIGxpc3QNCiAg4pSU4pSA4pSA4pSA4pSADQoNCiAgRGV0YWlsczogPGh0dHBz Oi8vZ2l0aHViLmNvbS9haHJlZnMvYXRkL3JlbGVhc2VzL3RhZy80LjAuMD4NCg0KICBGb3IgYW4g ZWFybGllciBkaXNjdXNzaW9uIG9mIHRoZSBkZXNpZ24sIHNlZQ0KICA8aHR0cHM6Ly9kaXNjdXNz Lm9jYW1sLm9yZy90L3JmYy1tdWx0aWZpbGUtYXRkLWRlZmluaXRpb24tc3VwcG9ydC12aWEtaW1w b3J0LXN0YXRlbWVudHMvMTc4ODE+XS4NCg0KDQpEdW5lIDMuMjINCuKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6IDxodHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3QvYW5u LWR1bmUtMy0yMi8xNzkxMi8xPg0KDQoNClNob24gYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICBUaGUgRHVuZSB0ZWFtIGlzIHBsZWFzZWQg dG8gYW5ub3VuY2UgW3RoZSByZWxlYXNlIG9mIGR1bmUgMy4yMi4wXS4NCg0KICBJbiBhZGRpdGlv biB0byBtYW55IGZpeGVzIGFuZCBzbWFsbCBpbXByb3ZlbWVudHMsIG5vdGFibGUgaGlnaGxpZ2h0 cw0KICBvZiB0aGlzIHJlbGVhc2UgaW5jbHVkZToNCg0KICDigKIgRml4ZXMgdG8gdGhlIGR1bmUg Y2FjaGUgb24gV2luZG93cywgdGhhbmtzIHRvIFtATmV2b3JdIGluDQogICAgW29jYW1sL2R1bmUj MTM3MTNdLg0KICDigKIgTmV3IHRyYWNpbmcgZnVuY3Rpb25hbGl0eSwgdG8gaW5zcGVjdCBhbmQg ZGlhZ25vc2UgdGhlIGJ1aWxkDQogICAgcHJvY2Vzc2VzIHRoYW5rcyB0byBbQHJncmluYmVyZ10g YWNyb3NzIG1hbnkgUFJzLiBTZWUgW3RoZQ0KICAgIGRvY3VtZW50YXRpb25dLg0KICDigKIgQWRk aXRpb24gb2YgdGhlIGBkdW5lLWFjdGlvbi10cmFjZScgbGlicmFyeSwgdG8gaW5zdHJ1bWVudCB0 cmFjZQ0KICAgIGVtaXNzaW9uLCB0aGFua3MgdG8gW0ByZ3JpbmJlcmddLg0KICDigKIgU3VwcG9y dCBmb3IgZ2VuZXJhdGluZyBvZG9jIGRvY3VtZW50YXRpb24gaW4gbWFya2Rvd24gdmlhIHRoZQ0K ICAgIGBAZG9jLW1hcmtkb3duJyBidWlsZCBhbGlhcyB0aGFua3MgdG8gW0BkYXZlc254XSBbb2Nh bWwvZHVuZSMxMjU4MV0uDQogIOKAoiBGdWxsIHN1cHBvcnQgZm9yIE94Q2FtbCdzIHBhcmFtZXRl cmlzZWQgbGlicmFyaWVzLCB0aGFua3MgdG8NCiAgICBbQGFydC13XSBhbmQgW0BtYWlzdGVdLiBU byBsZWFybiBtb3JlLCBzZWUgW3RoZSBkb2NzXS4NCg0KICBTZWUgW3RoZSBmdWxsIGNoYW5nZWxv Z10gZm9yIGFsbCBuZXcgZmVhdHVyZXMgYW5kIGZpeGVzLCBhbmQgZm9yDQogIGF0dHJpYnV0aW9u IHRvIHRoZSBjb250cmlidXRvcnMgd2hvIG1hZGUgaXQgYWxsIHBvc3NpYmxlLiBUaGFuayB5b3Us DQogIGNvbnRyaWJ1dG9ycyENCg0KICBJZiB5b3UgZW5jb3VudGVyIGEgcHJvYmxlbSB3aXRoIHRo aXMgcmVsZWFzZSwgcGxlYXNlIHJlcG9ydCBpdCBpbiBbb3VyDQogIGlzc3VlIHRyYWNrZXJdLg0K DQoNClt0aGUgcmVsZWFzZSBvZiBkdW5lIDMuMjIuMF0NCjxodHRwczovL2dpdGh1Yi5jb20vb2Nh bWwvZHVuZS9yZWxlYXNlcy90YWcvMy4yMi4wPg0KDQpbQE5ldm9yXSA8aHR0cHM6Ly9naXRodWIu Y29tL05ldm9yPg0KDQpbb2NhbWwvZHVuZSMxMzcxM10gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2Ft bC9kdW5lL3B1bGwvMTM3MTM+DQoNCltAcmdyaW5iZXJnXSA8aHR0cHM6Ly9naXRodWIuY29tL3Jn cmluYmVyZz4NCg0KW3RoZSBkb2N1bWVudGF0aW9uXQ0KPGh0dHBzOi8vZHVuZS5yZWFkdGhlZG9j cy5pby9lbi9zdGFibGUvaGFja2luZy5odG1sI2luc3BlY3RpbmctdHJhY2VzLXdpdGgtanE+DQoN CltAZGF2ZXNueF0gPGh0dHBzOi8vZ2l0aHViLmNvbS9kYXZlc254Pg0KDQpbb2NhbWwvZHVuZSMx MjU4MV0gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9kdW5lL3B1bGwvMTI1ODE+DQoNCltAYXJ0 LXddIDxodHRwczovL2dpdGh1Yi5jb20vYXJ0LXc+DQoNCltAbWFpc3RlXSA8aHR0cHM6Ly9naXRo dWIuY29tL21haXN0ZT4NCg0KW3RoZSBkb2NzXQ0KPGh0dHBzOi8vZHVuZS5yZWFkdGhlZG9jcy5p by9lbi9zdGFibGUvdHV0b3JpYWxzL294Y2FtbC1wYXJhbWV0ZXJpemVkLWxpYnJhcnkvaW5kZXgu aHRtbD4NCg0KW3RoZSBmdWxsIGNoYW5nZWxvZ10gPGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9k dW5lL3JlbGVhc2VzL3RhZy8zLjIyLjA+DQoNCltvdXIgaXNzdWUgdHJhY2tlcl0gPGh0dHBzOi8v Z2l0aHViLmNvbS9vY2FtbC9kdW5lL2lzc3Vlcz4NCg0KDQpQYXJzZWZmOiBwYXJzZXIgY29tYmlu YXRvciBsaWJyYXJ5IGZvciBPQ2FtbCA1DQrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDi lZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZANCg0KICBB cmNoaXZlOg0KICA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L2Fubi1wYXJzZWZmLXBhcnNl ci1jb21iaW5hdG9yLWxpYnJhcnktZm9yLW9jYW1sLTUvMTc5MTQvMT4NCg0KDQpEYXZpZCBTYW5j aG8gYW5ub3VuY2VkDQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIANCg0KICBIaSBldmVyeW9uZSwNCg0KICBJ4oCZbSBzaGFy aW5nICpQYXJzZWZmKiwgYSBwYXJzZXIgY29tYmluYXRvciBsaWJyYXJ5IGZvciAqT0NhbWwgNSou DQoNCiAgSWYgeW91IGxpa2UgcGFyc2VyIGNvbWJpbmF0b3JzIGJ1dCBkb27igJl0IGxvdmUgd3Jp dGluZyBldmVyeXRoaW5nIGluDQogIG1vbmFkaWMgc3R5bGUsIFBhcnNlZmYgaXMgYnVpbHQgZm9y IHRoYXQuIFBhcnNlcnMgYXJlIHBsYWluIGZ1bmN0aW9ucw0KICAoYHVuaXQgLT4gJ2EnKSBhbmQg eW91IGNvbXBvc2UgdGhlbSBpbiBkaXJlY3Qgc3R5bGUsIHdoaWxlIFBhcnNlZmYNCiAgaGFuZGxl cyBiYWNrdHJhY2tpbmcgYW5kIHN0cmVhbWluZyB1bmRlciB0aGUgaG9vZCAodXNpbmcgZWZmZWN0 cyEpDQoNCg0KV2h5IFBhcnNlZmYNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0K DQogIOKAoiAqRGlyZWN0LXN0eWxlIEFQSSo6IHdyaXRlIHNlcXVlbnRpYWwgT0NhbWwgY29kZSwg bm8gYD4+PScsIGBsZXQqJywNCiAgICAgb3IgYXBwbGljYXRpdmUgb3BlcmF0b3IgY2hhaW5zIHJl cXVpcmVkLg0KICDigKIgKlR5cGVkIGVycm9ycyo6IHJhaXNlIGRvbWFpbiBlcnJvcnMgd2l0aCBw b2x5bW9ycGhpYyB2YXJpYW50cyB2aWENCiAgICAgYFBhcnNlZmYuZXJyb3InLg0KICDigKIgKlN0 cmVhbWluZyBpbnB1dCo6IHNhbWUgcGFyc2VyIHdvcmtzIHdpdGggYFBhcnNlZmYucGFyc2UnIChz dHJpbmcpDQogICAgIGFuZCBgUGFyc2VmZi5wYXJzZV9zb3VyY2UnIChzdHJlYW0pLg0KICDigKIg Klplcm8tY29weSArIGZ1c2VkIG9wcyo6IHNwYW4gQVBJcyBhbmQgZnVzZWQgb3BlcmF0aW9ucyBm b3IgaG90DQogICAgIHBhcnNpbmcgcGF0aHMuDQogIOKAoiAqRG9tYWluLXNhZmUgZXhlY3V0aW9u KjogcGFyc2UgY2FsbHMgYXJlIHNlbGYtY29udGFpbmVkIChubyBnbG9iYWwNCiAgICAgbXV0YWJs ZSBzdGF0ZSkuDQogIOKAoiBBdXRvbWF0aWMgYmFja3RyYWNraW5nIHdpdGggW2BQYXJzZWZmLm9y XyddDQogIOKAoiBNaW5pbWFsIGRlcGVuZGVuY3kgZm9vdHByaW50OiBvbmx5IGByZScgZm9yIHJl Z2V4DQoNCg0KW2BQYXJzZWZmLm9yXyddIDxodHRwczovL2RhdmVzbnguZ2l0aHViLmlvL3BhcnNl ZmYvYXBpL2NvbWJpbmF0b3JzLyNvcl8+DQoNCg0KUGVyZm9ybWFuY2UNCuKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIEluIHRoZSBpbmNsdWRlZCBiZW5jaG1hcmtzLCBQYXJz ZWZmIGlzIGZhc3RlciB0aGFuIEFuZ3N0cm9tIGFuZA0KICBNUGFyc2VyOg0KDQogIOKAoiBhcm91 bmQgKn4yeCogaW4gZmFpciBjb21wYXJpc29ucw0KICDigKIgdXAgdG8gKn40eCsqIHdpdGggemVy by1jb3B5IG9wdGltaXplZCBwYXRocw0KICBCZW5jaG1hcmsgZGV0YWlscyBhbmQgY29kZSBhcmUg aW4gdGhlIHJlcG8gZG9jcy4NCg0KICAjIyBEb2N1bWVudGF0aW9uDQoNCiAgSeKAmXZlIHB1dCBh IGxvdCBvZiBlZmZvcnQgaW50byB0aGUgZG9jcyAocXVpY2sgc3RhcnQsIGd1aWRlcywgYW5kIEFQ SQ0KICBwYWdlcykgdG8ga2VlcCBQYXJzZWZmIGVhc3kgdG8gbGVhcm4uIEEgYml0IHByb3VkIG9m IHVzaW5nIG9kb2PigJlzDQogIE1hcmtkb3duIGJhY2tlbmQgcGx1cyBtZHgsIEkgY2FuIGdlbmVy YXRlIGFuZCBjaGVjayBleGFtcGxlcyBvbiB0aGUNCiAgZmx5LCBzbyBzbmlwcGV0cyBzdGF5IHR5 cGUtc2FmZS4NCg0KICA8aHR0cHM6Ly9kYXZlc254LmdpdGh1Yi5pby9wYXJzZWZmPg0KDQoNCklu c3RhbGwNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQogIOKUjOKUgOKUgOKUgOKUgA0KICDilIIg b3BhbSBpbnN0YWxsIHBhcnNlZmYgLXkNCiAg4pSU4pSA4pSA4pSA4pSADQoNCg0KTGlua3MNCuKV jOKVjOKVjOKVjOKVjA0KDQogIOKAoiBEb2NzOiA8aHR0cHM6Ly9kYXZlc254LmdpdGh1Yi5pby9w YXJzZWZmLz4NCiAg4oCiIENvbXBhcmlzb24gZ3VpZGU6DQogICAgPGh0dHBzOi8vZGF2ZXNueC5n aXRodWIuaW8vcGFyc2VmZi9ndWlkZXMvY29tcGFyaXNvbi8+DQogIOKAoiBHaXRIdWI6IDxodHRw czovL2dpdGh1Yi5jb20vZGF2ZXNueC9wYXJzZWZmPg0KDQogIElmIHlvdSB0cnkgaXQsIEnigJlk IHJlYWxseSB2YWx1ZSBmZWVkYmFjayBvbjogQVBJIGVyZ29ub21pY3MsIGVycm9yDQogIGhhbmRs aW5nIGV4cGVyaWVuY2Ugb3IgbWlzc2luZyBjb21iaW5hdG9ycyBvciBkb2NzIGdhcHMhDQoNCiAg VGhhbmtzIQ0KDQoNCk91dHJlYWNoeSBEZW1vIERheSBmb3IgRGVjZW1iZXIgMjAyNSBSb3VuZA0K 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcv dC9vdXRyZWFjaHktZGVtby1kYXktZm9yLWRlY2VtYmVyLTIwMjUtcm91bmQvMTc4ODMvNT4NCg0K DQpDb250aW51aW5nIHRoaXMgdGhyZWFkLCBQYXRyaWNrIEZlcnJpcyBhbm5vdW5jZWQNCuKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogIFRoZSByZWNvcmRpbmcgb2Ygb3VyIChuZWFy bHkgdHdvIGhvdXIhKSBtZWV0aW5nIGlzIG5vdyBvbmxpbmU6DQogIDxodHRwczovL3dhdGNoLm9j YW1sLm9yZy93LzhhVXFNaEZ2aFFHcTRXSkxIM3VrakE+ICENCg0KICBUaGFuayB5b3UgdG8gZXZl cnlvbmUgd2hvIGpvaW5lZCA6dHdvX2h1bXBfY2FtZWw6DQoNCg0KT2xkIENXTg0K4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQDQoNCiAgSWYgeW91IGhhcHBlbiB0byBtaXNzIGEgQ1dOLCB5b3UgY2FuIFtz ZW5kIG1lIGEgbWVzc2FnZV0gYW5kIEknbGwgbWFpbA0KICBpdCB0byB5b3UsIG9yIGdvIHRha2Ug YSBsb29rIGF0IFt0aGUgYXJjaGl2ZV0gb3IgdGhlIFtSU1MgZmVlZCBvZiB0aGUNCiAgYXJjaGl2 ZXNdLg0KDQogIElmIHlvdSBhbHNvIHdpc2ggdG8gcmVjZWl2ZSBpdCBldmVyeSB3ZWVrIGJ5IG1h aWwsIHlvdSBtYXkgc3Vic2NyaWJlDQogIHRvIHRoZSBbY2FtbC1saXN0XS4NCg0KICBbQWxhbiBT Y2htaXR0XQ0KDQoNCltzZW5kIG1lIGEgbWVzc2FnZV0gPG1haWx0bzphbGFuLnNjaG1pdHRAcG9s eXRlY2huaXF1ZS5vcmc+DQoNClt0aGUgYXJjaGl2ZV0gPGh0dHBzOi8vYWxhbi5wZXRpdGVwb21t ZS5uZXQvY3duLz4NCg0KW1JTUyBmZWVkIG9mIHRoZSBhcmNoaXZlc10gPGh0dHBzOi8vYWxhbi5w ZXRpdGVwb21tZS5uZXQvY3duL2N3bi5yc3M+DQoNCltjYW1sLWxpc3RdIDxodHRwczovL3N5bXBh LmlucmlhLmZyL3N5bXBhL2luZm8vY2FtbC1saXN0Pg0KDQpbQWxhbiBTY2htaXR0XSA8aHR0cHM6 Ly9hbGFuLnBldGl0ZXBvbW1lLm5ldC8+DQoNCg== --=-=-= Content-Type: text/html; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable OCaml Weekly News

OCaml Weekly News

Previous Week<= /a> Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of March 17 to 24, 2026.

Introducing atdml (experimental)

Martin Jambon announced

ATD 4.0.0 was released today on opam.

This release introduces atdml, an experimental replacement for atdge= n.

The goal is to modernize the implementation and make it easier to extend, while keeping compatibility with existing ATD workflows.

Here's a sample input file example.atd:

type location =3D {
  row: int;
  column: int;
  ?file: string option;
}

Atdml is invoked as follows, normally by the build system:

$ atdml example.atd

It produces a pair of mli and ml files. This is example.mli:

(* A=
uto-generated from "example.atd" by atdml. *)

type location =3D {
  row: int;
  column: int;
  file: string option;
}

val create_location : row:int -> column:int -> ?file:string -> unit -> location
val location_of_yojson : Yojson.Safe.t -> location
val yojson_of_location : location -> Yojson.Safe.t
val location_of_json : string -> location
val json_of_location : location -> string

module Location : sig
  type nonrec t =3D location
  val create : row:int -> column:int -> ?file:string -> unit -> t
  val of_yojson : Yojson.Safe.t -> t
  val to_yojson : t -> Yojson.Safe.t
  val of_json : string -> t
  val to_json : t -> string
end

Release notes: https://github= .com/ahrefs/atd/releases/tag/4.0.0

Documentation: https://atd.readthedocs.io/

Project page: https://github.com/ahrefs/atd

Experimental module imports in ATD (ATD 4.0.0)

Martin Jambon announced

ATD 4.0.0 adds experimental support for imports between ATD files.

This allows splitting schemas across multiple files in a natural way.

Currently supported in:

  • atdml (OCaml)
  • atdpy (Python)
  • atdts (TypeScript)

Example:

from utils as u import email

type email_addresses =3D u.email list

Details: https://github= .com/ahrefs/atd/releases/tag/4.0.0

For an earlier discussion of the design, see = https://discuss.ocaml.org/t/rfc-multifile-atd-definition-support-via-import= -statements/17881].

Dune 3.22

Shon announced

The Dune team is pleased to announce the release of dune 3.22.0.

In addition to many fixes and small improvements, notable highlights of thi= s release include:

See the full = changelog for all new features and fixes, and for attribution to the contributors who= made it all possible. Thank you, contributors!

If you encounter a problem with this release, please report it in our issue tracker.

Parseff: parser combinator library for OCaml 5

David Sancho announced

Hi everyone,

I=E2=80=99m sharing Parseff, a parser combinator library for OCam= l 5.

If you like parser combinators but don=E2=80=99t love writing everything in= monadic style, Parseff is built for that. Parsers are plain functions (unit -> 'a) and you compose them in direct style, while Parsef= f handles backtracking and streaming under the hood (using effects!)

Why Parseff

  • Direct-style API: write sequential OCaml code, no >>= =3D, let*, or applicative operator chains required.
  • Typed errors: raise domain errors with polymorphic variants via = Parseff.error.
  • Streaming input: same parser works with Parseff.parse (string) and Parseff.parse_source (stream).
  • Zero-copy + fused ops: span APIs and fused operations for hot pa= rsing paths.
  • Domain-safe execution: parse calls are self-contained (no global= mutable state).
  • Automatic backtracking with Parseff.or_
  • Minimal dependency footprint: only re for regex

Performance

In the included benchmarks, Parseff is faster than Angstrom and MParser:

  • around ~2x in fair comparisons
  • up to ~4x+ with zero-copy optimized paths

Benchmark details and code are in the repo docs.

## Documentation

I=E2=80=99ve put a lot of effort into the docs (quick start, guides, and AP= I pages) to keep Parseff easy to learn. A bit proud of using odoc=E2=80=99s= Markdown backend plus mdx, I can generate and check examples on the fly, s= o snippets stay type-safe.

https://davesnx.github.io/par= seff

Install

opam install parseff -y

Links

If you try it, I=E2=80=99d really value feedback on: API ergonomics, error = handling experience or missing combinators or docs gaps!

Thanks!

Outreachy Demo Day for December 2025 Round

Continuing this thread, Patrick Ferris announced

The recording of our (nearly two hour!) meeting is now online: https://watch.ocaml.org/w/= 8aUqMhFvhQGq4WJLH3ukjA !

Thank you to everyone who joined :two_hump_camel:

Old CWN

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a loo= k at the archive or the <= a href=3D"https://alan.petitepomme.net/cwn/cwn.rss">RSS feed of the archive= s.

If you also wish to receive it every week by mail, you may subscribe to the= caml-list.

--=-=-=--