Skip to content

Commit

Permalink
deploy: f01888f
Browse files Browse the repository at this point in the history
  • Loading branch information
xvw committed Aug 12, 2024
1 parent c7a1ede commit f132714
Show file tree
Hide file tree
Showing 10 changed files with 294 additions and 5 deletions.
84 changes: 84 additions & 0 deletions atom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<id>https://ring.muhokama.fun/atom.xml</id>
<title type="text">ring.muhokama.fun</title>
<subtitle type="text">federated blog of Muhokama webring</subtitle>
<generator uri="https://github.com/xhtmlboi/yocaml" version="2">YOCaml</generator>
<updated>2024-05-29T00:00:00Z</updated>
<author>
<name>Xavier Van de Woestyne</name>
<uri>xvw.lol</uri>
</author>
<author>
<name>The XHTMLBoy</name>
<uri>xhtmlboi.github.io</uri>
</author>
<author>
<name>Maiste</name>
<uri>maiste.fr</uri>
</author>
<author>
<name>Romain Calascibetta</name>
<uri>blog.osau.re/</uri>
</author>
<author>
<name>Grim</name>
<uri>gr-im.github.io</uri>
</author>
<link href="https://ring.muhokama.fun/atom.xml" rel="self"/>
<link href="https://ring.muhokama.fun"/>
<entry>
<id>
https://tarides.com/blog/2024-05-29-effective-ml-through-merlin-s-destruct-command/
</id>
<title type="text">Effective ML Through Merlin&apos;s Destruct Command</title>
<updated>2024-05-29T00:00:00Z</updated>
<summary type="text">
This article presents the use of the destruct command in Merlin and OCaml-lsp to generate missing patterns, or to specify patterns in pattern matching.
</summary>
<author>
<name>Xavier Van de Woestyne</name>
<uri>xvw.lol</uri>
</author>
<link href="https://tarides.com/blog/2024-05-29-effective-ml-through-merlin-s-destruct-command/" rel="alternate" title="Effective ML Through Merlin&apos;s Destruct Command"/>
<category term="ocaml"/>
<category term="lsp"/>
<category term="ide"/>
<category term="emacs"/>
<category term="vscode"/>
<category term="vim"/>
<category term="merlin"/>
</entry>
<entry>
<id>https://xvw.lol/pages/modules-import.html</id>
<title type="text">OCaml, modules and import schemes</title>
<updated>2023-10-31T00:00:00Z</updated>
<summary type="text">
In this article, we&apos;re going to look at how generalised openings can be used to reproduce a common practice in other languages, which I call, somewhat pompously, import strategies,
</summary>
<author>
<name>Xavier Van de Woestyne</name>
<uri>xvw.lol</uri>
</author>
<link href="https://xvw.lol/pages/modules-import.html" rel="alternate" title="OCaml, modules and import schemes"/>
<category term="ocaml"/>
<category term="module"/>
</entry>
<entry>
<id>https://xvw.lol/pages/oop-refl.html</id>
<title type="text">Guarded methods using equality witnesses</title>
<updated>2022-05-29T00:00:00Z</updated>
<summary type="text">
Guarded methods allow constraints to be attached to the receiver (self) only for certain methods, so that these methods can only be called if the receiver satisfies these constraints (these guards). OCaml does not syntactically allow this type of method to be defined directly. In this note, we&apos;ll look at how to encode them using a type equality witness.
</summary>
<author>
<name>Xavier Van de Woestyne</name>
<uri>xvw.lol</uri>
</author>
<link href="https://xvw.lol/pages/oop-refl.html" rel="alternate" title="Guarded methods using equality witnesses"/>
<category term="ocaml"/>
<category term="oop"/>
<category term="refl"/>
<category term="gadt"/>
</entry>
</feed>
61 changes: 61 additions & 0 deletions blog.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" /><meta name="description" content="A federated blog of Webring&apos;s member" /><title>
ring.muhokama.fun - Blog</title>
<link rel="stylesheet" href="/css/fonts.css" />
<link rel="stylesheet" href="/css/reset.css" />
<link rel="stylesheet" href="/css/style.css" />
</head>
<body>
<header>
<div class="container">
<h1 class="logo">
<a href="/">ring.<span>muhokama</span>.fun</a></h1>
<div>
<nav><a href="/blog.html">Federated blog</a></nav>
</div>
</div>
</header>
<main>
<div class="container"><p>The <strong>Federated Blog</strong> allows <a href="/">webring members</a> to showcase federated
articles on this page from <em>time to time</em>. The list of articles is not
calculated automatically (via RSS/Atom feeds) but is the result of <strong>a manual
addition</strong>. You can retrieve the <a href="/atom.xml">ATOM feed from the federated blog</a>.</p>
<section class="articles"><article>
<div class="info">
<div class="lang"><span>eng</span></div>
<h2><a href="https://tarides.com/blog/2024-05-29-effective-ml-through-merlin-s-destruct-command/">Effective ML Through Merlin&apos;s Destruct Command</a></h2>
<div class="date">
published on <span>2024-05-29</span> by <a class="button" href="/u/xvw">xvw</a></div>
</div><p>This article presents the use of the destruct command in Merlin and OCaml-lsp to generate missing patterns, or to specify patterns in pattern matching.</p><ul class="tags"><li>ocaml</li><li>lsp</li><li>ide</li><li>emacs</li><li>vscode</li><li>vim</li><li>merlin</li></ul></article><article>
<div class="info">
<div class="lang"><span>fra</span></div>
<h2><a href="https://xvw.lol/pages/modules-import.html">OCaml, modules and import schemes</a></h2>
<div class="date">
published on <span>2023-10-31</span> by <a class="button" href="/u/xvw">xvw</a></div>
</div><p>In this article, we&apos;re going to look at how generalised openings can be used to reproduce a common practice in other languages, which I call, somewhat pompously, import strategies,</p><ul class="tags"><li>ocaml</li><li>module</li></ul></article><article>
<div class="info">
<div class="lang"><span>fra</span></div>
<h2><a href="https://xvw.lol/pages/oop-refl.html">Guarded methods using equality witnesses</a></h2>
<div class="date">
published on <span>2022-05-29</span> by <a class="button" href="/u/xvw">xvw</a></div>
</div><p>Guarded methods allow constraints to be attached to the receiver (self) only for certain methods, so that these methods can only be called if the receiver satisfies these constraints (these guards). OCaml does not syntactically allow this type of method to be defined directly. In this note, we&apos;ll look at how to encode them using a type equality witness.</p><ul class="tags"><li>ocaml</li><li>oop</li><li>refl</li><li>gadt</li></ul></article></section></div>
</main>
<footer>
<div class="container">
<strong class="logo">ring.<span>muhokama</span>.fun</strong><br />
<p>
is a
<a href="https://github.com/muhokama/ring">free software</a> proudly
propulsed by <a href="https://gitlab.com/funkywork/yocaml">YOCaml</a>
</p>
<nav>
<a class="button" href="/opml/ring.opml">OPML</a>
<a class="button" href="/atom.xml">ATOM</a>
</nav>
</div>
</footer>
</body>
</html>
2 changes: 1 addition & 1 deletion cache
Original file line number Diff line number Diff line change
@@ -1 +1 @@
(((3:rel(5:_site1:u3:xvw4:succ10:index.html))(64:c32e0b54430d06fb882bb4f6c9f20b13e18fb13e507d60dc648f2acaffbb4a69()10:1723397476))((3:rel(5:_site1:u3:xvw4:pred10:index.html))(64:89244b7acaa9d5df419d4424d7c9c4433c656694c1171a162d4e10860fe852ee()10:1723397476))((3:rel(5:_site1:u3:xvw10:index.html))(64:8faaa0cda88c96bc45478d119a44b427bd6cfba2d68856f1e997baf9fbda76ce()10:1723397476))((3:rel(5:_site1:u8:xhtmlboi4:succ10:index.html))(64:f4b37057d7c9563040f5bcbe71657c2c5d2e3053245997851c2ff25acf413a22()10:1723397476))((3:rel(5:_site1:u8:xhtmlboi4:pred10:index.html))(64:c3aba786ba133c2a05fcb6323e13041da2c808eacd2e31e1e01fac58d6113a5d()10:1723397476))((3:rel(5:_site1:u8:xhtmlboi10:index.html))(64:58c19ee35dfc79741c2051919c330a29edabe429a53183d83af7e2d2a67dcffd()10:1723397476))((3:rel(5:_site1:u6:maiste4:succ10:index.html))(64:227910425064dc893a18c935866f2ee4c478707565505b384dcd706aea89fc66()10:1723397476))((3:rel(5:_site1:u6:maiste4:pred10:index.html))(64:c32e0b54430d06fb882bb4f6c9f20b13e18fb13e507d60dc648f2acaffbb4a69()10:1723397476))((3:rel(5:_site1:u6:maiste10:index.html))(64:08300ba6a2ece5f6dc114c0bed21f09646829e38fe58850b0b24ef99233e6954()10:1723397476))((3:rel(5:_site1:u4:grim4:succ10:index.html))(64:c3aba786ba133c2a05fcb6323e13041da2c808eacd2e31e1e01fac58d6113a5d()10:1723397476))((3:rel(5:_site1:u4:grim4:pred10:index.html))(64:227910425064dc893a18c935866f2ee4c478707565505b384dcd706aea89fc66()10:1723397476))((3:rel(5:_site1:u4:grim10:index.html))(64:35c605eff155f483077b76c615a8959d5db9f0cb192adb14b84c18ca51e6ca3d()10:1723397476))((3:rel(5:_site1:u9:dinosaure4:succ10:index.html))(64:89244b7acaa9d5df419d4424d7c9c4433c656694c1171a162d4e10860fe852ee()10:1723397476))((3:rel(5:_site1:u9:dinosaure4:pred10:index.html))(64:f4b37057d7c9563040f5bcbe71657c2c5d2e3053245997851c2ff25acf413a22()10:1723397476))((3:rel(5:_site1:u9:dinosaure10:index.html))(64:2eca0bf0068f630fe3fbc9187f9294170a2ef4aefa433fc674b759d2cafb9290()10:1723397476))((3:rel(5:_site4:opml9:ring.opml))(64:684a262f274d283dd14a39d93da050262503738a3f438b4dc3f81635fd490212()10:1723397476))((3:rel(5:_site10:index.html))(64:b5496d19d238af8677d0a3b3b14866798d4c1c9c40701d4b780acd58e7cc8fb6()10:1723397476))((3:rel(5:_site6:images6:na.svg))(64:fda7bfb041db9d0cb05d098789030162960b83d7c2544677bee5d192c5608909()10:1723397476))((3:rel(5:_site6:images7:avatars7:xvw.png))(64:015eab38d51a8b271786b34a958efa5a726f6feff1151bf0202b8e62c1d47fed()10:1723397476))((3:rel(5:_site5:fonts29:inter-vietnamese-normal.woff2))(64:15df7612b2f445f4d18846aed403d0ca0947b3f8dead95d4b167621f5faaba57()10:1723397476))((3:rel(5:_site5:fonts24:inter-latin-normal.woff2))(64:88df0b5a7bc397dbc13a26bb8b3742cc62cd1c9b0dded57da7832416d6f52f42()10:1723397476))((3:rel(5:_site5:fonts28:inter-latin-ext-normal.woff2))(64:a2bfd9fe607d28fd07b05046e622818b8b5b94a358d53853a0d3f03e597cdc71()10:1723397476))((3:rel(5:_site5:fonts24:inter-greek-normal.woff2))(64:d92c6cbc1d482cb917c2ccca6da263f9443600d3f4d595a96d924c1682ee9b7b()10:1723397476))((3:rel(5:_site5:fonts28:inter-greek-ext-normal.woff2))(64:81f77e5106cfd713c25b5e57dbab6b3faa9a98f92bb0165d15a05e6d474d7758()10:1723397476))((3:rel(5:_site5:fonts26:inter-cyrilic-normal.woff2))(64:eba9487840439a0fa53c9be0541c524bb84b590a7af8c86573ceb1fe19c4bda9()10:1723397476))((3:rel(5:_site5:fonts30:inter-cyrilic-ext-normal.woff2))(64:1c3007b80d1197de7a0014c537d9d6fc4a5b77ed6e2797a10e180600647c4e0c()10:1723397476))((3:rel(5:_site5:fonts22:inria-latin-ext5.woff2))(64:d04b867cc32fa020d07f89c51c80bbf6f9caca772b193bf6237033a605db1a2e()10:1723397476))((3:rel(5:_site5:fonts22:inria-latin-ext4.woff2))(64:e8dba907a6c46e1b1a35095f065e21ba53977cb7372d4eaebcf4fdb5cb693711()10:1723397476))((3:rel(5:_site5:fonts22:inria-latin-ext3.woff2))(64:ef25533b58bd794b15c121999c6b6a4f5f24e2f88b0fa65435c0b0eb916891e6()10:1723397476))((3:rel(5:_site5:fonts22:inria-latin-ext2.woff2))(64:01eb9c7bdbf19f501a933c5753f86592b58ebe061aa15e08fd5f021013711847()10:1723397476))((3:rel(5:_site5:fonts22:inria-latin-ext1.woff2))(64:92fee143908954d7c79d4c9669a4f971b391af75b877b6d34e99771a4bd2a8a2()10:1723397476))((3:rel(5:_site5:fonts19:inria-latin-7.woff2))(64:873e11a295bd8ff73772f7d41f5d4d0ac1929adb779d4eefa2434bdb01bc5fc5()10:1723397476))((3:rel(5:_site5:fonts19:inria-latin-6.woff2))(64:460191eb8e476bc129c2c9d5a7be6b69d600dbcb6589a897076ef864f93d0b99()10:1723397476))((3:rel(5:_site5:fonts19:inria-latin-5.woff2))(64:fd65d008de84e542b7b561eb1e702ecfc6cacd3586122aee3337202171605d7b()10:1723397476))((3:rel(5:_site5:fonts19:inria-latin-4.woff2))(64:c2cdc75c398890cee80adde6be897fd04a2eefe3257d20c6317dd089d56020dc()10:1723397476))((3:rel(5:_site5:fonts19:inria-latin-3.woff2))(64:794dd2cd324afe13613558baaceb6cda8664acb13ecd36eb7d74c3f8fb56eb07()10:1723397476))((3:rel(5:_site5:fonts19:inria-latin-2.woff2))(64:1825b2f51b6bf2726b0bf3b1c167512492567d4e373b8da0b95eabab696c1c52()10:1723397476))((3:rel(5:_site5:fonts19:inria-latin-1.woff2))(64:98c63b911cee89f1450a5b4e3ff55654ec3fe9f50a9e31f778246ff82a8252fb()10:1723397476))((3:rel(5:_site3:css9:style.css))(64:2788b4f59e205177a9afc5ce94a6a4e6d0f0742760c25e074d3207eb6b8f0703()10:1723397476))((3:rel(5:_site3:css9:reset.css))(64:e5dec6fe1493eeaa0a54b256d3706f852dfd9a748e3ac827a1dfd3fe562a7e6d()10:1723397476))((3:rel(5:_site3:css9:fonts.css))(64:e1fc7895e55f6482d751b82d6573217e002ad0ab9328034db85b39ff7bd39b9d()10:1723397476))((3:rel(5:_site5:CNAME))(64:251d0064461e036b742ba03482d8cc9cb78128424284f47f9f7b1476265882ed()10:1723397476)))
(((3:rel(5:_site1:u3:xvw4:succ10:index.html))(64:c32e0b54430d06fb882bb4f6c9f20b13e18fb13e507d60dc648f2acaffbb4a69()10:1723432198))((3:rel(5:_site1:u3:xvw4:pred10:index.html))(64:89244b7acaa9d5df419d4424d7c9c4433c656694c1171a162d4e10860fe852ee()10:1723432198))((3:rel(5:_site1:u3:xvw10:index.html))(64:a8c8fe266f2b4f7514572757371bd1e4ec8bf12fcb3abdcfdbf710809d3946f1()10:1723432198))((3:rel(5:_site1:u8:xhtmlboi4:succ10:index.html))(64:f4b37057d7c9563040f5bcbe71657c2c5d2e3053245997851c2ff25acf413a22()10:1723432198))((3:rel(5:_site1:u8:xhtmlboi4:pred10:index.html))(64:c3aba786ba133c2a05fcb6323e13041da2c808eacd2e31e1e01fac58d6113a5d()10:1723432198))((3:rel(5:_site1:u8:xhtmlboi10:index.html))(64:df7d147f09cb17b9fd009f6065a233f7501821d5261d1def60a6e7fec2283ff0()10:1723432198))((3:rel(5:_site1:u6:maiste4:succ10:index.html))(64:227910425064dc893a18c935866f2ee4c478707565505b384dcd706aea89fc66()10:1723432198))((3:rel(5:_site1:u6:maiste4:pred10:index.html))(64:c32e0b54430d06fb882bb4f6c9f20b13e18fb13e507d60dc648f2acaffbb4a69()10:1723432198))((3:rel(5:_site1:u6:maiste10:index.html))(64:adca14e950ddf4aad02e9369f918a5b5df8f6eacf80be65db110046df0c72fe3()10:1723432198))((3:rel(5:_site1:u4:grim4:succ10:index.html))(64:c3aba786ba133c2a05fcb6323e13041da2c808eacd2e31e1e01fac58d6113a5d()10:1723432198))((3:rel(5:_site1:u4:grim4:pred10:index.html))(64:227910425064dc893a18c935866f2ee4c478707565505b384dcd706aea89fc66()10:1723432198))((3:rel(5:_site1:u4:grim10:index.html))(64:fb410bc0243c5dc37d4cce4dea90851102e800699475decc455e38e9288e3cab()10:1723432198))((3:rel(5:_site1:u9:dinosaure4:succ10:index.html))(64:89244b7acaa9d5df419d4424d7c9c4433c656694c1171a162d4e10860fe852ee()10:1723432198))((3:rel(5:_site1:u9:dinosaure4:pred10:index.html))(64:f4b37057d7c9563040f5bcbe71657c2c5d2e3053245997851c2ff25acf413a22()10:1723432198))((3:rel(5:_site1:u9:dinosaure10:index.html))(64:798ea502815d5bdf2492e1155165ec55f8cdf3e4bf3c98f2ac4f2fcf089d9f1b()10:1723432198))((3:rel(5:_site4:opml9:ring.opml))(64:684a262f274d283dd14a39d93da050262503738a3f438b4dc3f81635fd490212()10:1723432198))((3:rel(5:_site10:index.html))(64:aa19c4c2d2525fc7251c675bdb523cebc0a97d840cf9242a7bfe124ddacdb8f4()10:1723432198))((3:rel(5:_site6:images6:na.svg))(64:fda7bfb041db9d0cb05d098789030162960b83d7c2544677bee5d192c5608909()10:1723432198))((3:rel(5:_site6:images7:avatars7:xvw.png))(64:015eab38d51a8b271786b34a958efa5a726f6feff1151bf0202b8e62c1d47fed()10:1723432198))((3:rel(5:_site5:fonts29:inter-vietnamese-normal.woff2))(64:15df7612b2f445f4d18846aed403d0ca0947b3f8dead95d4b167621f5faaba57()10:1723432198))((3:rel(5:_site5:fonts24:inter-latin-normal.woff2))(64:88df0b5a7bc397dbc13a26bb8b3742cc62cd1c9b0dded57da7832416d6f52f42()10:1723432198))((3:rel(5:_site5:fonts28:inter-latin-ext-normal.woff2))(64:a2bfd9fe607d28fd07b05046e622818b8b5b94a358d53853a0d3f03e597cdc71()10:1723432198))((3:rel(5:_site5:fonts24:inter-greek-normal.woff2))(64:d92c6cbc1d482cb917c2ccca6da263f9443600d3f4d595a96d924c1682ee9b7b()10:1723432198))((3:rel(5:_site5:fonts28:inter-greek-ext-normal.woff2))(64:81f77e5106cfd713c25b5e57dbab6b3faa9a98f92bb0165d15a05e6d474d7758()10:1723432198))((3:rel(5:_site5:fonts26:inter-cyrilic-normal.woff2))(64:eba9487840439a0fa53c9be0541c524bb84b590a7af8c86573ceb1fe19c4bda9()10:1723432198))((3:rel(5:_site5:fonts30:inter-cyrilic-ext-normal.woff2))(64:1c3007b80d1197de7a0014c537d9d6fc4a5b77ed6e2797a10e180600647c4e0c()10:1723432198))((3:rel(5:_site5:fonts22:inria-latin-ext5.woff2))(64:d04b867cc32fa020d07f89c51c80bbf6f9caca772b193bf6237033a605db1a2e()10:1723432198))((3:rel(5:_site5:fonts22:inria-latin-ext4.woff2))(64:e8dba907a6c46e1b1a35095f065e21ba53977cb7372d4eaebcf4fdb5cb693711()10:1723432198))((3:rel(5:_site5:fonts22:inria-latin-ext3.woff2))(64:ef25533b58bd794b15c121999c6b6a4f5f24e2f88b0fa65435c0b0eb916891e6()10:1723432198))((3:rel(5:_site5:fonts22:inria-latin-ext2.woff2))(64:01eb9c7bdbf19f501a933c5753f86592b58ebe061aa15e08fd5f021013711847()10:1723432198))((3:rel(5:_site5:fonts22:inria-latin-ext1.woff2))(64:92fee143908954d7c79d4c9669a4f971b391af75b877b6d34e99771a4bd2a8a2()10:1723432198))((3:rel(5:_site5:fonts19:inria-latin-7.woff2))(64:873e11a295bd8ff73772f7d41f5d4d0ac1929adb779d4eefa2434bdb01bc5fc5()10:1723432198))((3:rel(5:_site5:fonts19:inria-latin-6.woff2))(64:460191eb8e476bc129c2c9d5a7be6b69d600dbcb6589a897076ef864f93d0b99()10:1723432198))((3:rel(5:_site5:fonts19:inria-latin-5.woff2))(64:fd65d008de84e542b7b561eb1e702ecfc6cacd3586122aee3337202171605d7b()10:1723432198))((3:rel(5:_site5:fonts19:inria-latin-4.woff2))(64:c2cdc75c398890cee80adde6be897fd04a2eefe3257d20c6317dd089d56020dc()10:1723432198))((3:rel(5:_site5:fonts19:inria-latin-3.woff2))(64:794dd2cd324afe13613558baaceb6cda8664acb13ecd36eb7d74c3f8fb56eb07()10:1723432198))((3:rel(5:_site5:fonts19:inria-latin-2.woff2))(64:1825b2f51b6bf2726b0bf3b1c167512492567d4e373b8da0b95eabab696c1c52()10:1723432198))((3:rel(5:_site5:fonts19:inria-latin-1.woff2))(64:98c63b911cee89f1450a5b4e3ff55654ec3fe9f50a9e31f778246ff82a8252fb()10:1723432198))((3:rel(5:_site3:css9:style.css))(64:563d0f3df368f1c1a9de8c6528340bda3705ceda447ae925c0fe82d75e48a8aa()10:1723432198))((3:rel(5:_site3:css9:reset.css))(64:e5dec6fe1493eeaa0a54b256d3706f852dfd9a748e3ac827a1dfd3fe562a7e6d()10:1723432198))((3:rel(5:_site3:css9:fonts.css))(64:e1fc7895e55f6482d751b82d6573217e002ad0ab9328034db85b39ff7bd39b9d()10:1723432198))((3:rel(5:_site9:blog.html))(64:9be42dddfd394084a6c8e5e278960d68a287a2f79e5a23369017c7a3888ff91a()10:1723432198))((3:rel(5:_site8:atom.xml))(64:064023cd3067f50347ac6efc5b68d3ea376418b6c327c7726a25ba29fcdee3d7()10:1723432198))((3:rel(5:_site5:CNAME))(64:251d0064461e036b742ba03482d8cc9cb78128424284f47f9f7b1476265882ed()10:1723432198)))
Loading

0 comments on commit f132714

Please sign in to comment.