<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Concurrency on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/concurrency/</link>
        <description>Recent content in Concurrency on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Wed, 03 Sep 2025 15:27:52 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/concurrency/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>comprehensive-rust</title>
        <link>https://producthunt.programnotes.cn/en/p/comprehensive-rust/</link>
        <pubDate>Wed, 03 Sep 2025 15:27:52 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/comprehensive-rust/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1542707088-7fa1c72006d8?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTY4ODQzNjh8&amp;ixlib=rb-4.1.0" alt="Featured image of post comprehensive-rust" /&gt;&lt;h1 id=&#34;googlecomprehensive-rust&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/comprehensive-rust&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;google/comprehensive-rust&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;comprehensive-rust-&#34;&gt;Comprehensive Rust 🦀
&lt;/h1&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/comprehensive-rust/actions/workflows/build.yml?query=branch%3Amain&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/actions/workflow/status/google/comprehensive-rust/build.yml?style=flat-square&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Build workflow&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/comprehensive-rust/graphs/contributors&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/contributors/google/comprehensive-rust?style=flat-square&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub contributors&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/comprehensive-rust/stargazers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/stars/google/comprehensive-rust?style=flat-square&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub stars&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This repository has the source code for Comprehensive Rust 🦀, a multi-day Rust
course developed by the Android team. The course covers all aspects of Rust,
from basic syntax to generics and error handling. It also includes deep dives on
&lt;a class=&#34;link&#34; href=&#34;https://google.github.io/comprehensive-rust/android.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Android&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://google.github.io/comprehensive-rust/chromium.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Chromium&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://google.github.io/comprehensive-rust/bare-metal.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;bare-metal&lt;/a&gt;, and &lt;a class=&#34;link&#34; href=&#34;https://google.github.io/comprehensive-rust/concurrency.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;concurrency&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Read the course at &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://google.github.io/comprehensive-rust/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://google.github.io/comprehensive-rust/&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;course-format-and-target-audience&#34;&gt;Course Format and Target Audience
&lt;/h2&gt;&lt;p&gt;The course is used internally at Google when teaching Rust to experienced
software engineers. They typically have a background in C++ or Java.&lt;/p&gt;
&lt;p&gt;The course is taught in a classroom setting and we hope it will be useful for
others who want to teach Rust to their team. The course will be less useful for
self-study since you miss out on the discussions happening in the classroom. You
don&amp;rsquo;t see the questions and answers and you don&amp;rsquo;t see the compiler errors we
trigger when going through the code samples. We hope to improve on this via
&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/comprehensive-rust/issues/53&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;speaker notes&lt;/a&gt; and by
&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/comprehensive-rust/issues/52&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;publishing videos&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;press&#34;&gt;Press
&lt;/h2&gt;&lt;p&gt;Articles and blog posts from around the web which cover Comprehensive Rust:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2023-09-08:
&lt;em&gt;&lt;a class=&#34;link&#34; href=&#34;https://mo8it.com/blog/teaching-rust/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Teaching Rust in 5 days&lt;/a&gt;&lt;/em&gt;.
Comprehensive Rust was used as a base for a 5-day university class on Rust.&lt;/li&gt;
&lt;li&gt;2023-09-21:
&lt;em&gt;&lt;a class=&#34;link&#34; href=&#34;https://security.googleblog.com/2023/09/scaling-rust-adoption-through-training.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Scaling Rust Adoption Through Training&lt;/a&gt;&lt;/em&gt;.
We published a blog post with details on the development of the course.&lt;/li&gt;
&lt;li&gt;2023-10-02:
&lt;em&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.darkreading.com/application-security/seeking-rust-developers-in-house-training&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;In Search of Rust Developers, Companies Turn to In-House Training&lt;/a&gt;&lt;/em&gt;.
About how Microsoft, Google, and others are training people in Rust.&lt;/li&gt;
&lt;li&gt;2024-10-18:
&lt;em&gt;&lt;a class=&#34;link&#34; href=&#34;https://youtu.be/7h5KyMqt2-Q?si=4M99HdWWxMaqN8Zr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Rust Training at Scale | Rust Global @ RustConf 2024&lt;/a&gt;&lt;/em&gt;.
What Google learnt from teaching Comprehensive Rust for more than two years.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;setup&#34;&gt;Setup
&lt;/h2&gt;&lt;p&gt;The course is built using a few tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/rust-lang/mdBook&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mdbook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/boozook/mdbook-svgbob&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mdbook-svgbob&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/mdbook-i18n-helpers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mdbook-i18n-helpers and i18n-report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;mdbook-exerciser/&#34; &gt;mdbook-exerciser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;mdbook-course/&#34; &gt;mdbook-course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/marxin/mdbook-linkcheck2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;mdbook-linkcheck2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;First install Rust by following the instructions on &lt;a class=&#34;link&#34; href=&#34;https://rustup.rs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://rustup.rs/&lt;/a&gt;. Then
clone this repository:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/google/comprehensive-rust/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; comprehensive-rust
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Then install these tools with:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo xtask install-tools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; We use &lt;code&gt;xtask&lt;/code&gt; for task automation within the project (e.g.
installing required tools). Xtask is not a package that you should install.
Visit &lt;a class=&#34;link&#34; href=&#34;https://github.com/matklad/cargo-xtask&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/matklad/cargo-xtask&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;commands&#34;&gt;Commands
&lt;/h2&gt;&lt;p&gt;Here are some of the commonly used commands you can run in the project. Run
&lt;code&gt;cargo xtask&lt;/code&gt; to view all available commands.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Command&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;cargo xtask install-tools&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Install all the tools the project depends on.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;cargo xtask serve&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Start a web server with the course. You&amp;rsquo;ll find the content on http://localhost:3000. To serve any of the translated versions of the course, add the language flag (&amp;ndash;language or -l) followed by xx, where xx is the ISO 639 language code (e.g. cargo xtask serve -l da for the Danish translation).&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;cargo xtask rust-tests&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Test the included Rust snippets.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;cargo xtask web-tests&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Run the web driver tests in the tests directory.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;cargo xtask build&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Create a static version of the course in the &lt;code&gt;book/&lt;/code&gt; directory. Note that you have to separately build and zip exercises and add them to book/html. To build any of the translated versions of the course, add the language flag (&amp;ndash;language or -l) followed by xx, where xx is the ISO 639 language code (e.g. cargo xtask build -l da for the Danish translation). &lt;a class=&#34;link&#34; href=&#34;TRANSLATIONS.md&#34; &gt;TRANSLATIONS.md&lt;/a&gt; contains further instructions.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; On Windows, you need to enable symlinks
(&lt;code&gt;git config --global core.symlinks true&lt;/code&gt;) and Developer Mode.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;We would like to receive your contributions. Please see
&lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;CONTRIBUTING.md&lt;/a&gt; for details.&lt;/p&gt;
&lt;h2 id=&#34;contact&#34;&gt;Contact
&lt;/h2&gt;&lt;p&gt;For questions or comments, please contact
&lt;a class=&#34;link&#34; href=&#34;mailto:mgeisler@google.com&#34; &gt;Martin Geisler&lt;/a&gt; or start a
&lt;a class=&#34;link&#34; href=&#34;https://github.com/google/comprehensive-rust/discussions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;discussion on GitHub&lt;/a&gt;.
We would love to hear from you.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>effect</title>
        <link>https://producthunt.programnotes.cn/en/p/effect/</link>
        <pubDate>Wed, 25 Jun 2025 15:30:56 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/effect/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1700372599816-010cbb047e94?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTA4MzY1ODN8&amp;ixlib=rb-4.1.0" alt="Featured image of post effect" /&gt;&lt;h1 id=&#34;effect-tseffect&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Effect-TS/effect&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;effect-monorepo&#34;&gt;Effect Monorepo
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;An ecosystem of tools to build robust applications in TypeScript&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Welcome to Effect, a powerful TypeScript framework that provides a fully-fledged functional effect system with a rich standard library.&lt;/p&gt;
&lt;p&gt;Effect consists of several packages that work together to help build robust TypeScript applications. The core package, &lt;code&gt;effect&lt;/code&gt;, serves as the foundation of the framework, offering primitives for managing side effects, ensuring type safety, and supporting concurrency.&lt;/p&gt;
&lt;h2 id=&#34;monorepo-structure&#34;&gt;Monorepo Structure
&lt;/h2&gt;&lt;p&gt;The Effect monorepo is organized into multiple packages, each extending the core functionality. Below is an overview of the packages included:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Package&lt;/th&gt;
          &lt;th&gt;Description&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;effect&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Core package&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/effect/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/ai&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;AI utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/ai/ai/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/ai-openai&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;OpenAI utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/ai/openai/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/ai-anthropic&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Anthropic utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/ai/anthropic/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/cli&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;CLI utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/cli/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/cluster&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Distributed computing tools&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/cluster/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/cluster-browser&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Cluster utilities for the browser&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/cluster-browser/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/cluster-node&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Cluster utilities for &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Node.js&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/cluster-node/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/cluster-workflow&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Workflow management for clusters&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/cluster-worflow/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/experimental&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Experimental features and APIs&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/experimental/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/opentelemetry&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://opentelemetry.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenTelemetry&lt;/a&gt; integration&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/opentelemetry/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/platform&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Cross-platform runtime utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/platform/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/platform-browser&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Platform utilities for the browser&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/platform-browser/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/platform-bun&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Platform utilities for &lt;a class=&#34;link&#34; href=&#34;https://bun.sh/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Bun&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/platform-bun/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/platform-node&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Platform utilities for &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Node.js&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/platform-node/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/platform-node-shared&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Shared utilities for &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Node.js&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/platform-node-shared/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/printer&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;General-purpose printing utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/printer/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/printer-ansi&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;ANSI-compatible printing utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/printer-ansi/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/rpc&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Remote procedure call (RPC) utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/rpc/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/rpc-http&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;HTTP-based RPC utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/rpc-http/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;SQL database utilities&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-clickhouse&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation for &lt;a class=&#34;link&#34; href=&#34;https://clickhouse.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ClickHouse&lt;/a&gt;.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-clickhouse/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-d1&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation for &lt;a class=&#34;link&#34; href=&#34;https://developers.cloudflare.com/d1/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cloudflare D1&lt;/a&gt;.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-d1/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-drizzle&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation for &lt;a class=&#34;link&#34; href=&#34;https://orm.drizzle.team/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Drizzle&lt;/a&gt;.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-drizzle/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-kysely&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation for &lt;a class=&#34;link&#34; href=&#34;https://kysely.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Kysely&lt;/a&gt;.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-kysely/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-libsql&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation using the &lt;code&gt;@libsql/client&lt;/code&gt; library.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-libsql/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-mssql&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation using the mssql &lt;code&gt;tedious&lt;/code&gt; library.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-mssql/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-mysql2&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation using the &lt;code&gt;mysql2&lt;/code&gt; library.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-mysql2/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-pg&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation using the &lt;code&gt;postgres.js&lt;/code&gt; library.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-pg/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-sqlite-bun&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation using the &lt;code&gt;bun:sqlite&lt;/code&gt; library.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-sqlite-bun/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-sqlite-do&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation for Cloudflare Durable Objects sqlite storage.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-sqlite-do/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-sqlite-node&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation using the &lt;code&gt;better-sqlite3&lt;/code&gt; library.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-sqlite-node/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-sqlite-react-native&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation using the &lt;code&gt;react-native-quick-sqlite&lt;/code&gt; library.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-sqlite-react-native/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/sql-sqlite-wasm&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;An &lt;code&gt;@effect/sql&lt;/code&gt; implementation using the &lt;code&gt;@sqlite.org/sqlite-wasm&lt;/code&gt; library.&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/sql-sqlite-wasm/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/typeclass&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Functional programming type classes&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/typeclass/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;@effect/vitest&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Testing utilities for &lt;a class=&#34;link&#34; href=&#34;https://vitest.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Vitest&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Effect-TS/effect/blob/main/packages/vitest/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;README&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id=&#34;documentation&#34;&gt;Documentation
&lt;/h1&gt;&lt;h2 id=&#34;website&#34;&gt;Website
&lt;/h2&gt;&lt;p&gt;For detailed information and usage examples, visit the &lt;a class=&#34;link&#34; href=&#34;https://www.effect.website/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Effect website&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;api-reference&#34;&gt;API Reference
&lt;/h2&gt;&lt;p&gt;For a complete API reference of the core package &lt;code&gt;effect&lt;/code&gt;, see the &lt;a class=&#34;link&#34; href=&#34;https://effect-ts.github.io/effect/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Effect API documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;introduction-to-effect&#34;&gt;Introduction to Effect
&lt;/h2&gt;&lt;p&gt;Get started with Effect by watching our introductory video on YouTube. This video provides an overview of Effect and its key features:&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://youtu.be/ViSiXfBKElQ&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.youtube.com/vi/ViSiXfBKElQ/maxresdefault.jpg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Introduction to Effect&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;connect-with-our-community&#34;&gt;Connect with Our Community
&lt;/h1&gt;&lt;p&gt;Join the Effect community on Discord to connect with other developers, ask questions, and share insights: &lt;a class=&#34;link&#34; href=&#34;https://discord.gg/hdt7t7jpvn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Join Effect&amp;rsquo;s Discord Community&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;contributing-via-pull-requests&#34;&gt;Contributing via Pull Requests
&lt;/h1&gt;&lt;p&gt;We welcome contributions via pull requests! Here are some guidelines to help you get started:&lt;/p&gt;
&lt;h2 id=&#34;setting-up-your-environment&#34;&gt;Setting Up Your Environment
&lt;/h2&gt;&lt;p&gt;Begin by forking the repository and clone it to your local machine.&lt;/p&gt;
&lt;p&gt;Navigate into the cloned repository and create a new branch for your changes:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git checkout -b my-branch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ensure all required dependencies are installed by running:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm install  &lt;span class=&#34;c1&#34;&gt;# Requires pnpm version 10.4.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;making-changes&#34;&gt;Making Changes
&lt;/h2&gt;&lt;h3 id=&#34;implement-your-changes&#34;&gt;Implement Your Changes
&lt;/h3&gt;&lt;p&gt;Make the changes you propose to the codebase. If your changes impact functionality, please &lt;strong&gt;add corresponding tests&lt;/strong&gt; to validate your updates.&lt;/p&gt;
&lt;h3 id=&#34;validate-your-changes&#34;&gt;Validate Your Changes
&lt;/h3&gt;&lt;p&gt;Run the following commands to ensure your changes do not introduce any issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pnpm codegen&lt;/code&gt; (optional): Re-generate the package entrypoints in case you have changed the structure of a package or introduced a new module.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm check&lt;/code&gt;: Confirm that the code compiles without errors.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm test&lt;/code&gt;: Execute all unit tests to ensure your changes haven&amp;rsquo;t broken existing functionality.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm circular&lt;/code&gt;: Check for any circular dependencies in imports.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm lint&lt;/code&gt;: Ensure the code adheres to our coding standards.
&lt;ul&gt;
&lt;li&gt;If you encounter style issues, use &lt;code&gt;pnpm lint-fix&lt;/code&gt; to automatically correct some of these.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm test-types&lt;/code&gt;: Run type-level tests. Tests are written using &lt;a class=&#34;link&#34; href=&#34;https://tstyche.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tstyche&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm docgen&lt;/code&gt;: Ensure the documentation generates correctly and reflects any changes made.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;document-your-changes&#34;&gt;Document Your Changes
&lt;/h3&gt;&lt;h4 id=&#34;jsdoc-comments&#34;&gt;JSDoc Comments
&lt;/h4&gt;&lt;p&gt;When adding a new feature, it&amp;rsquo;s important to document your code using JSDoc comments. This helps other developers understand the purpose and usage of your changes. Include at least the following in your JSDoc comments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A Short Description&lt;/strong&gt;: Summarize the purpose and functionality of the feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Example&lt;/strong&gt;: Provide a usage example under the &lt;code&gt;@example&lt;/code&gt; tag to demonstrate how to use the feature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Since Version&lt;/strong&gt;: Use the &lt;code&gt;@since&lt;/code&gt; tag to indicate the version in which the feature was introduced. If you&amp;rsquo;re unsure about the version, please consult with a project maintainer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Category (Optional)&lt;/strong&gt;: You can categorize the feature with the &lt;code&gt;@category&lt;/code&gt; tag to help organize the documentation. If you&amp;rsquo;re unsure about what category to assign, ask a project maintainer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: A HTML utility file, &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/scripts/jsdocs/code2jsdoc-example.html&#34; &gt;&lt;code&gt;code2jsdoc-example.html&lt;/code&gt;&lt;/a&gt;, has been added to assist with creating JSDoc &lt;code&gt;@example&lt;/code&gt; comments. This web-based interface includes two text areas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An input textarea for pasting example code.&lt;/li&gt;
&lt;li&gt;An output textarea that dynamically generates formatted JSDoc &lt;code&gt;@example&lt;/code&gt; comments.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This utility helps ensure consistent formatting and streamlines the process of documenting examples. See the following example of its usage:&lt;/p&gt;
&lt;p&gt;Example Input:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ts&#34; data-lang=&#34;ts&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kr&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;Effect&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;kr&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;effect&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Effect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;runSyncExit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Effect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;succeed&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;Output:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;  _id: &amp;#34;Exit&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;  _tag: &amp;#34;Success&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;  value: 1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cm&#34;&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Output:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* @example
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* ```ts
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* import { Effect } from &amp;#34;effect&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* console.log(Effect.runSyncExit(Effect.succeed(1)))
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* // Output:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* // {
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* //   _id: &amp;#34;Exit&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* //   _tag: &amp;#34;Success&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* //   value: 1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* // }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* ```
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;By using this utility, you can save time and maintain consistency in your JSDoc comments, especially for complex examples.&lt;/p&gt;
&lt;h4 id=&#34;changeset-documentation&#34;&gt;Changeset Documentation
&lt;/h4&gt;&lt;p&gt;Before committing your changes, document them with a changeset. This process helps in tracking modifications and effectively communicating them to the project team and users:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm changeset
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;During the changeset creation process, you will be prompted to select the appropriate level for your changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;patch&lt;/strong&gt;: Opt for this if you are making small fixes or minor changes that do not affect the library&amp;rsquo;s overall functionality.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;minor&lt;/strong&gt;: Choose this for new features that enhance functionality but do not disrupt existing features.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;major&lt;/strong&gt;: Select this for any changes that result in backward-incompatible modifications to the library.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;finalizing-your-contribution&#34;&gt;Finalizing Your Contribution
&lt;/h2&gt;&lt;h3 id=&#34;commit-your-changes&#34;&gt;Commit Your Changes
&lt;/h3&gt;&lt;p&gt;Once you have documented your changes with a changeset, it’s time to commit them to the repository. Use a clear and descriptive commit message, which could be the same message you used in your changeset:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -am &lt;span class=&#34;s1&#34;&gt;&amp;#39;Add some feature&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h4 id=&#34;linking-to-issues&#34;&gt;Linking to Issues
&lt;/h4&gt;&lt;p&gt;If your commit addresses an open issue, reference the issue number directly in your commit message. This helps to link your contribution clearly to specific tasks or bug reports. Additionally, if your commit resolves the issue, you can indicate this by adding a phrase like &lt;code&gt;&amp;quot;, closes #&amp;lt;issue-number&amp;gt;&amp;quot;&lt;/code&gt;. For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -am &lt;span class=&#34;s1&#34;&gt;&amp;#39;Add some feature, closes #123&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;This practice not only helps in tracking the progress of issues but also automatically closes the issue when the commit is merged, streamlining project management.&lt;/p&gt;
&lt;h3 id=&#34;push-to-your-fork&#34;&gt;Push to Your Fork
&lt;/h3&gt;&lt;p&gt;Push the changes up to your GitHub fork:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push origin my-branch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;create-a-pull-request&#34;&gt;Create a Pull Request
&lt;/h3&gt;&lt;p&gt;Open a pull request against the appropriate branch on the original repository:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;main&lt;/code&gt; branch: For minor patches or bug fixes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;next-minor&lt;/code&gt; branch: For new features that are non-breaking.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;next-major&lt;/code&gt; branch: For changes that introduce breaking modifications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please be patient! We will do our best to review your pull request as soon as possible.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
