<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on FsFlow</title>
    <link>https://adz.github.io/FsFlow/</link>
    <description>Recent content in Home on FsFlow</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://adz.github.io/FsFlow/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>FsToolkit.ErrorHandling</title>
      <link>https://adz.github.io/FsFlow/docs/ecosystem/integrations-fstoolkit/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/ecosystem/integrations-fstoolkit/</guid>
      <description>&lt;h1 id=&#34;fstoolkiterrorhandling&#34;&gt;FsToolkit.ErrorHandling&lt;/h1&gt;&#xA;&lt;p&gt;If you are coming from &lt;code&gt;FsToolkit.ErrorHandling&lt;/code&gt;, you will find that FsFlow is orthogonal rather&#xA;than a direct replacement. While both libraries help with result-based programming, FsFlow&#xA;focuses on a unified execution model that carries environments and runtime policies.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-model-difference&#34;&gt;The Model Difference&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;FsToolkit.ErrorHandling&lt;/code&gt; provides a broad toolbox of helpers for working with Result,&#xA;&lt;code&gt;AsyncResult&lt;/code&gt;, and &lt;code&gt;TaskResult&lt;/code&gt; as separate, wrapped types.&lt;/p&gt;&#xA;&lt;p&gt;FsFlow provides a single, scalable progression:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Check](/reference/check/) -&amp;gt; [Result](/reference/result/) -&amp;gt; [Validation](/reference/validation/) -&amp;gt; [Flow](/reference/flow/)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In FsFlow, the environment and runtime concerns are baked into the computation, allowing you to&#xA;write orchestration logic that remains agnostic of whether the underlying work is sync or async&#xA;until it hits the application boundary.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting Started</title>
      <link>https://adz.github.io/FsFlow/docs/start/getting-started/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/start/getting-started/</guid>
      <description>&lt;h1 id=&#34;getting-started&#34;&gt;Getting Started&lt;/h1&gt;&#xA;&lt;p&gt;FsFlow is a toolkit for building robust, Result-based programs in F#. It allows you to scale from simple validation logic to complex, effectful application boundaries using a single, unified mental model.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-the-continuum-of-logic&#34;&gt;1. The Continuum of Logic&lt;/h2&gt;&#xA;&lt;p&gt;FsFlow is designed around a continuum. You should always use the simplest tool that satisfies your current requirement:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Pure Checks -&amp;gt; Result &amp;amp; Validation -&amp;gt; Flow&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pure Checks&lt;/strong&gt;: Reusable predicates for basic validation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Result &amp;amp; Validation&lt;/strong&gt;: Domain logic that handles success or failure (either fail-fast or error-accumulating).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Flow&lt;/strong&gt;: The application boundary where you need dependencies, async/task interop, logging, or cancellation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;2-start-with-checks-and-results&#34;&gt;2. Start with Checks and Results&lt;/h2&gt;&#xA;&lt;p&gt;Most logic starts pure. Use &lt;code&gt;Check&lt;/code&gt; for reusable predicates and &lt;code&gt;Result&lt;/code&gt; for domain logic.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pure Checks</title>
      <link>https://adz.github.io/FsFlow/docs/validation-results/checks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/validation-results/checks/</guid>
      <description>&lt;h1 id=&#34;pure-checks&#34;&gt;Pure Checks&lt;/h1&gt;&#xA;&lt;p&gt;&lt;code&gt;Check&amp;lt;&#39;value&amp;gt;&lt;/code&gt; is the foundation of FsFlow validation. It is a reusable predicate layer that returns &lt;code&gt;Result&amp;lt;&#39;value, unit&amp;gt;&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If the predicate is true, it returns &lt;code&gt;Ok value&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;If the predicate is false, it returns &lt;code&gt;Error ()&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;By returning &lt;code&gt;unit&lt;/code&gt; on failure, &lt;code&gt;Check&lt;/code&gt; stays agnostic about your application&amp;rsquo;s error types. You decide what the error means at the boundary where you use it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-two-shapes-of-check&#34;&gt;The Two Shapes of Check&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Value-Preserving&lt;/strong&gt;: &lt;code&gt;Check&amp;lt;&#39;value&amp;gt;&lt;/code&gt; - returns the input value on success.&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;check&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;notBlank&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// string -&amp;gt; Result&amp;lt;string, unit&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gate&lt;/strong&gt;: &lt;code&gt;Check&amp;lt;unit&amp;gt;&lt;/code&gt; - returns &lt;code&gt;unit&lt;/code&gt; on success (useful for yes/no questions).&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;check&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;okIf&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;age&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;18&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// unit -&amp;gt; Result&amp;lt;unit, unit&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;attaching-errors-with-checkorerror&#34;&gt;Attaching Errors with &lt;code&gt;Check.orError&lt;/code&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Use &lt;code&gt;Check.orError&lt;/code&gt; to turn a unit failure into a meaningful application error.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ref (Atomic References)</title>
      <link>https://adz.github.io/FsFlow/docs/state-concurrency/ref/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/state-concurrency/ref/</guid>
      <description>&lt;h1 id=&#34;ref-atomic-references&#34;&gt;Ref (Atomic References)&lt;/h1&gt;&#xA;&lt;p&gt;&lt;code&gt;Ref&amp;lt;&#39;T&amp;gt;&lt;/code&gt; is a handle to a mutable reference that can be updated atomically. It is the simplest way to manage shared state between multiple concurrent parts of your application.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;Ref&lt;/code&gt; is currently available on &lt;strong&gt;.NET&lt;/strong&gt; only.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;why-use-ref&#34;&gt;Why Use Ref?&lt;/h2&gt;&#xA;&lt;p&gt;In a functional program, state is usually passed as parameters or through the environment. However, some scenarios—like a shared counter, a cache, or a status flag—require multiple concurrent workflows to observe and update the same value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Environment Slicing</title>
      <link>https://adz.github.io/FsFlow/docs/managing-dependencies/env-slicing/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/managing-dependencies/env-slicing/</guid>
      <description>&lt;h1 id=&#34;environment-slicing-the-record-pattern&#34;&gt;Environment Slicing (The Record Pattern)&lt;/h1&gt;&#xA;&lt;p&gt;The Record Pattern is the most common way to manage dependencies in FsFlow. It uses standard F# records to define the &amp;ldquo;world&amp;rdquo; a workflow lives in.&lt;/p&gt;&#xA;&lt;h2 id=&#34;projecting-from-the-environment&#34;&gt;Projecting from the Environment&lt;/h2&gt;&#xA;&lt;p&gt;When a workflow needs a dependency, it &amp;ldquo;reads&amp;rdquo; it from the environment record.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;AppEnv&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Gateway&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;IPingGateway&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000&#34;&gt;Logger&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;ILogger&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;ping&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// &amp;#39;env&amp;#39; is the full AppEnv record&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;gateway&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;read&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;env&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;env&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Gateway&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;gateway&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Ping&lt;/span&gt;&lt;span style=&#34;color:#3465a4&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;the-shorthand-_field&#34;&gt;The Shorthand: &lt;code&gt;_.Field&lt;/code&gt;&lt;/h3&gt;&#xA;&lt;p&gt;F# provides a nice shorthand for these simple projections. Instead of &lt;code&gt;(fun env -&amp;gt; env.Gateway)&lt;/code&gt;, you can write &lt;code&gt;_.Gateway&lt;/code&gt;. This makes the code much cleaner and easier to read.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Execution Semantics</title>
      <link>https://adz.github.io/FsFlow/docs/core-model/semantics/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/core-model/semantics/</guid>
      <description>&lt;h1 id=&#34;execution-semantics&#34;&gt;Execution Semantics&lt;/h1&gt;&#xA;&lt;p&gt;This page shows the exact execution rules for &lt;code&gt;Flow&lt;/code&gt;, including how a cold program becomes an &lt;code&gt;Effect&lt;/code&gt; and resolves to an &lt;code&gt;Exit&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;FsFlow uses a unified &lt;strong&gt;&lt;code&gt;Flow&amp;lt;&#39;env, &#39;error, &#39;value&amp;gt;&lt;/code&gt;&lt;/strong&gt; model that handles synchronous code, F# &lt;code&gt;Async&lt;/code&gt;, and .NET &lt;code&gt;Task&lt;/code&gt; interop natively.&lt;/p&gt;&#xA;&lt;h2 id=&#34;execution-shape&#34;&gt;Execution Shape&lt;/h2&gt;&#xA;&lt;p&gt;Conceptually, execution is:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Flow -&amp;gt; Effect -&amp;gt; Exit&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;More precisely:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;Flow&lt;/code&gt; is the cold program you define.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Effect&lt;/code&gt; is the deferred runnable carrier.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Exit&lt;/code&gt; is the terminal outcome after execution.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;success-and-typed-failure&#34;&gt;Success and Typed Failure&lt;/h2&gt;&#xA;&lt;p&gt;Every Flow execution results in an &lt;strong&gt;&lt;code&gt;Exit&amp;lt;&#39;value, &#39;error&amp;gt;&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Result CE</title>
      <link>https://adz.github.io/FsFlow/docs/validation-results/result-ce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/validation-results/result-ce/</guid>
      <description>&lt;h1 id=&#34;result-ce&#34;&gt;Result CE&lt;/h1&gt;&#xA;&lt;p&gt;Use the &lt;code&gt;result {}&lt;/code&gt; computation expression when you have a sequence of steps where each step depends on the previous one, and you want to &lt;strong&gt;stop at the first failure&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This is &amp;ldquo;fail-fast&amp;rdquo; semantics.&lt;/p&gt;&#xA;&lt;h2 id=&#34;basic-usage&#34;&gt;Basic Usage&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;result {}&lt;/code&gt; builder binds standard F# &lt;code&gt;Result&amp;lt;&#39;value, &#39;error&amp;gt;&lt;/code&gt; types.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;UserError&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;MissingName&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;MissingEmail&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validateUser&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;email&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;result&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// If name is blank, it returns Error MissingName and stops.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validName&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;notBlank&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;orError&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;MissingName&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// This line only runs if the name was valid.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validEmail&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;email&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;notBlank&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;orError&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;MissingEmail&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validName&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Email&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validEmail&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;guarded-bindings&#34;&gt;Guarded Bindings&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;Guard&lt;/code&gt; is a powerful companion to &lt;code&gt;result {}&lt;/code&gt;. It allows you to bind boolean or check-shaped sources directly while attaching an error value at the binding site.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Schedule (Retry &amp; Repeat)</title>
      <link>https://adz.github.io/FsFlow/docs/state-concurrency/schedule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/state-concurrency/schedule/</guid>
      <description>&lt;h1 id=&#34;schedule-retry--repeat&#34;&gt;Schedule (Retry &amp;amp; Repeat)&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;code&gt;Schedule&lt;/code&gt; module provides a powerful DSL for describing policies that govern how and when a workflow should be executed again. You can use schedules to implement sophisticated retry strategies (like exponential backoff with jitter) or recurring tasks.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;Schedule&lt;/code&gt; is currently available on &lt;strong&gt;.NET&lt;/strong&gt; only.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;basic-schedules&#34;&gt;Basic Schedules&lt;/h2&gt;&#xA;&lt;p&gt;A schedule decides two things:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Whether to continue (recur).&lt;/li&gt;&#xA;&lt;li&gt;How long to wait before the next attempt.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;fixed-number-of-recursions&#34;&gt;Fixed Number of Recursions&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Recur 5 times (6 attempts total)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;fiveTimes&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Schedule&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;recurs&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;5&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;fixed-spacing&#34;&gt;Fixed Spacing&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Recur indefinitely with 1 second between attempts&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;everySecond&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Schedule&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;spaced&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;TimeSpan&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;FromSeconds&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;exponential-backoff&#34;&gt;Exponential Backoff&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Delays: 100ms, 200ms, 400ms, 800ms...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;backoff&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Schedule&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;exponential&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;TimeSpan&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;FromMilliseconds&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;adding-jitter&#34;&gt;Adding Jitter&lt;/h3&gt;&#xA;&lt;p&gt;Jitter adds randomness to delays to prevent &amp;ldquo;thundering herd&amp;rdquo; problems in distributed systems. &lt;code&gt;Schedule.jittered&lt;/code&gt; adds a random factor between 0.5x and 1.5x to the current delay.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Types</title>
      <link>https://adz.github.io/FsFlow/docs/patterns/troubleshooting-types/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/patterns/troubleshooting-types/</guid>
      <description>&lt;h1 id=&#34;troubleshooting-types&#34;&gt;Troubleshooting Types&lt;/h1&gt;&#xA;&lt;p&gt;This page shows the compiler errors that usually mean you crossed a wrapper boundary in the wrong place.&lt;/p&gt;&#xA;&lt;p&gt;Most FsFlow type errors are not exotic.&#xA;The compiler usually sees one wrapper shape and you intended another.&lt;/p&gt;&#xA;&lt;h2 id=&#34;error-a-unique-overload-for-method-bind-could-not-be-determined&#34;&gt;Error: A Unique Overload For Method &lt;code&gt;Bind&lt;/code&gt; Could Not Be Determined&lt;/h2&gt;&#xA;&lt;p&gt;This usually happens when the compiler cannot tell which wrapper shape a &lt;code&gt;let!&lt;/code&gt; value should use.&lt;/p&gt;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;nested&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Async&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Async&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Result&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;async&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;async&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Ok&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;42&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;workflow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unit&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;next&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;nested&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;value&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;next&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;value&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The second &lt;code&gt;let!&lt;/code&gt; is ambiguous.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Validus Integration</title>
      <link>https://adz.github.io/FsFlow/docs/ecosystem/integrations-validus/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/ecosystem/integrations-validus/</guid>
      <description>&lt;h1 id=&#34;validus-integration&#34;&gt;Validus Integration&lt;/h1&gt;&#xA;&lt;p&gt;This page shows how FsFlow can fit beside &lt;code&gt;Validus&lt;/code&gt; validation pipelines.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Validus&lt;/code&gt; is a strong choice when the problem is still validation, especially when you want a richer DSL,&#xA;composition, accumulation, or value-object style checks.&lt;/p&gt;&#xA;&lt;p&gt;FsFlow can usually begin after that work is done.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Validus&lt;/code&gt; and &lt;code&gt;FsFlow.Check&lt;/code&gt; fit especially well together: &lt;code&gt;Validus&lt;/code&gt; can handle richer validation rules,&#xA;while &lt;code&gt;FsFlow.Check&lt;/code&gt; stays available for smaller pure guards that feed directly into Result,&#xA;Validation, or Flow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Guard</title>
      <link>https://adz.github.io/FsFlow/docs/validation-results/guard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/validation-results/guard/</guid>
      <description>&lt;h1 id=&#34;the-guard&#34;&gt;The Guard&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;strong&gt;Guard&lt;/strong&gt; is a bridge. It allows pure predicate checks and simple error-bearing sources (like &lt;code&gt;Option&lt;/code&gt; or &lt;code&gt;Result&lt;/code&gt;) to &lt;strong&gt;fail a computation&lt;/strong&gt; with a specific domain error.&lt;/p&gt;&#xA;&lt;p&gt;While builders like &lt;code&gt;flow {}&lt;/code&gt; and &lt;code&gt;result {}&lt;/code&gt; can bind many types directly, Guard is the primary tool for assigning a domain-specific error to a source or &amp;ldquo;unwrapping&amp;rdquo; an effectful source before validation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-do-i-need-guard&#34;&gt;Why do I need Guard?&lt;/h2&gt;&#xA;&lt;p&gt;Consider a simple user lookup. When it is a pure function, it works seamlessly with &lt;code&gt;Check&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Benchmarks</title>
      <link>https://adz.github.io/FsFlow/docs/patterns/benchmarks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/patterns/benchmarks/</guid>
      <description>&lt;h1 id=&#34;benchmarks&#34;&gt;Benchmarks&lt;/h1&gt;&#xA;&lt;p&gt;This page shows the performance tradeoffs of using FsFlow compared to manual result/async/task composition.&lt;/p&gt;&#xA;&lt;p&gt;The benchmarks are measured with &lt;code&gt;BenchmarkDotNet&lt;/code&gt; and represent the abstraction cost for typical application code.&lt;/p&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;abstraction cost is negligible for effectful code&lt;/li&gt;&#xA;&lt;li&gt;cold execution for task-oriented computations adds small allocation overhead compared to hot &lt;code&gt;ValueTask&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;performance is competitive with manual &lt;code&gt;Async&amp;lt;Result&amp;lt;&#39;T, &#39;E&amp;gt;&amp;gt;&lt;/code&gt; composition&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;setup&#34;&gt;Setup&lt;/h2&gt;&#xA;&lt;p&gt;All measurements were taken on:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;.NET 8.0&lt;/li&gt;&#xA;&lt;li&gt;Ubuntu 22.04&lt;/li&gt;&#xA;&lt;li&gt;AMD Ryzen 9 5950X&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;abstraction-cost&#34;&gt;Abstraction Cost&lt;/h2&gt;&#xA;&lt;p&gt;Measures a 20-step bind sequence where each step is pure.&#xA;This is the &amp;ldquo;worst case&amp;rdquo; for FsFlow because the abstraction cost is not hidden by actual I/O or async work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Capabilities (CAPS)</title>
      <link>https://adz.github.io/FsFlow/docs/managing-dependencies/capabilities/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/managing-dependencies/capabilities/</guid>
      <description>&lt;h1 id=&#34;capabilities-caps&#34;&gt;Capabilities (CAPS)&lt;/h1&gt;&#xA;&lt;p&gt;The CAPS pattern lets you decouple your workflows from specific record types. Instead of saying &amp;ldquo;I need the &lt;code&gt;AppEnv&lt;/code&gt; record,&amp;rdquo; a workflow says &amp;ldquo;I need any environment that provides an &lt;code&gt;IClock&lt;/code&gt;.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;This is achieved using the &lt;code&gt;Needs&amp;lt;&#39;dep&amp;gt;&lt;/code&gt; interface and the &lt;code&gt;Env&amp;lt;&#39;dep&amp;gt;&lt;/code&gt; request token.&lt;/p&gt;&#xA;&lt;h2 id=&#34;requesting-a-dependency-with-envdep&#34;&gt;Requesting a Dependency with &lt;code&gt;Env&amp;lt;&#39;dep&amp;gt;&lt;/code&gt;&lt;/h2&gt;&#xA;&lt;p&gt;In a CAPS workflow, you use the &lt;code&gt;Env&amp;lt;&#39;dep&amp;gt;&lt;/code&gt; token to request a dependency by its type. FsFlow handles finding that dependency in the environment for you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IcedTasks Integration</title>
      <link>https://adz.github.io/FsFlow/docs/ecosystem/integrations-icedtasks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/ecosystem/integrations-icedtasks/</guid>
      <description>&lt;h1 id=&#34;icedtasks-integration&#34;&gt;IcedTasks Integration&lt;/h1&gt;&#xA;&lt;p&gt;This page shows how FsFlow can fit beside &lt;code&gt;IcedTasks&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;IcedTasks&lt;/code&gt; is a natural neighbor when the codebase already uses task computation expressions and cold or cancellable task helpers.&lt;/p&gt;&#xA;&lt;p&gt;FsFlow does not need to replace that layer. It can add typed failure, environment threading, and boundary management where those concerns matter.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;IcedTasks&lt;/code&gt; is especially interesting when you want task-native ergonomics and performance-sensitive helpers. FsFlow stays in the picture when you want to carry a typed result and an explicit environment together with the runtime shape.&lt;/p&gt;</description>
    </item>
    <item>
      <title>STM (Software Transactional Memory)</title>
      <link>https://adz.github.io/FsFlow/docs/state-concurrency/stm/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/state-concurrency/stm/</guid>
      <description>&lt;h1 id=&#34;stm-software-transactional-memory&#34;&gt;STM (Software Transactional Memory)&lt;/h1&gt;&#xA;&lt;p&gt;Software Transactional Memory (STM) is a powerful concurrency primitive that allows you to combine multiple atomic operations into a single &lt;strong&gt;transaction&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;While &lt;code&gt;Ref&lt;/code&gt; is perfect for updating a single variable, &lt;code&gt;STM&lt;/code&gt; is designed for scenarios where you need to update &lt;strong&gt;multiple&lt;/strong&gt; variables consistently. FsFlow ensures that the entire transaction is executed atomically—either all changes are committed, or none are.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;STM&lt;/code&gt; is currently available on &lt;strong&gt;.NET&lt;/strong&gt; only.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Straightforward Examples</title>
      <link>https://adz.github.io/FsFlow/docs/start/basic-examples/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/start/basic-examples/</guid>
      <description>&lt;h1 id=&#34;straightforward-examples&#34;&gt;Straightforward Examples&lt;/h1&gt;&#xA;&lt;p&gt;These examples show how to use FsFlow for common tasks without the overhead of a full application setup.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-simple-environment-access&#34;&gt;1. Simple Environment Access&lt;/h2&gt;&#xA;&lt;p&gt;Use &lt;code&gt;Flow.read&lt;/code&gt; to project a single field from your environment record.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Config&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;ApiUrl&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;getUrl&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;url&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;read&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;_.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ApiUrl&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;url&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;outcome&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;getUrl&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;ApiUrl&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://api.example.com&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// outcome = Exit.Success &amp;#34;https://api.example.com&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;2-combining-pure-logic-and-async-work&#34;&gt;2. Combining Pure Logic and Async Work&lt;/h2&gt;&#xA;&lt;p&gt;Use &lt;code&gt;flow {}&lt;/code&gt; to mix pure &lt;code&gt;Check&lt;/code&gt; logic, &lt;code&gt;Async&lt;/code&gt; blocks, and other flows.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validateId&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;okIf&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;orError&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Invalid ID&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;fetchUser&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;async&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Id&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Ada&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;workflow&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validId&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validateId&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;user&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;fetchUser&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validId&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Binds Async&amp;lt;&amp;#39;T&amp;gt; directly&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Name&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;effect&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;workflow&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;42&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#3465a4&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// effect = Effect&amp;lt;string, string&amp;gt; (ValueTask or Async)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;3-retrying-a-flow&#34;&gt;3. Retrying a Flow&lt;/h2&gt;&#xA;&lt;p&gt;Use the &lt;code&gt;Schedule&lt;/code&gt; module to add operational policies like retries.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Task and Async Interop</title>
      <link>https://adz.github.io/FsFlow/docs/core-model/task-async-interop/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/core-model/task-async-interop/</guid>
      <description>&lt;h1 id=&#34;task-and-async-interop&#34;&gt;Task and Async Interop&lt;/h1&gt;&#xA;&lt;p&gt;FsFlow provides a single, unified computation expression—&lt;strong&gt;&lt;code&gt;flow {}&lt;/code&gt;&lt;/strong&gt;—that handles synchronous code, F# &lt;code&gt;Async&lt;/code&gt;, and .NET &lt;code&gt;Task&lt;/code&gt; interop natively. You don&amp;rsquo;t have to choose between different builders; the same flow can orchestrate all these effect types.&lt;/p&gt;&#xA;&lt;h2 id=&#34;direct-binds&#34;&gt;Direct Binds&lt;/h2&gt;&#xA;&lt;p&gt;Inside a &lt;code&gt;flow {}&lt;/code&gt; block, you can use &lt;code&gt;let!&lt;/code&gt; to bind many common F# and .NET types directly. FsFlow handles the conversion to its internal execution model automatically.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Outcome&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Flow&amp;lt;&#39;env, &#39;error, &#39;value&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Continues with the flow&amp;rsquo;s value.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Result&amp;lt;&#39;value, &#39;error&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Continues on &lt;code&gt;Ok&lt;/code&gt;, short-circuits on &lt;code&gt;Error&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Async&amp;lt;&#39;value&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Awaits the async and continues with the value.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Async&amp;lt;Result&amp;lt;&#39;value, &#39;error&amp;gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Awaits the async and handles the Result outcome.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Task&amp;lt;&#39;value&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Awaits the task and continues with the value.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Task&amp;lt;Result&amp;lt;&#39;value, &#39;error&amp;gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Awaits the task and handles the Result outcome.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;ValueTask&amp;lt;&#39;value&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Awaits the value task and continues with the value.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;ValueTask&amp;lt;Result&amp;lt;&#39;value, &#39;error&amp;gt;&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Awaits and handles the Result outcome.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;example-mixed-orchestration&#34;&gt;Example: Mixed Orchestration&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;fetchUser&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Task&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;User&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validate&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;User&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Result&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;User&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;saveUser&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;User&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Async&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unit&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;processUser&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Bind a .NET Task&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;user&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;fetchUser&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;id&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Bind a Result&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validUser&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validate&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;user&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Bind an F# Async&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;do&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;saveUser&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validUser&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Done&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;option-and-valueoption&#34;&gt;Option and ValueOption&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;Option&amp;lt;&#39;value&amp;gt;&lt;/code&gt; and &lt;code&gt;ValueOption&amp;lt;&#39;value&amp;gt;&lt;/code&gt; can also be bound directly, but only if the flow&amp;rsquo;s error type is &lt;code&gt;unit&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Validate CE</title>
      <link>https://adz.github.io/FsFlow/docs/validation-results/validate-ce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/validation-results/validate-ce/</guid>
      <description>&lt;h1 id=&#34;validate-ce&#34;&gt;Validate CE&lt;/h1&gt;&#xA;&lt;p&gt;Use the &lt;code&gt;validate {}&lt;/code&gt; computation expression when you have multiple independent checks and you want to &lt;strong&gt;collect every failure&lt;/strong&gt; into a single report.&lt;/p&gt;&#xA;&lt;p&gt;While the standard &lt;code&gt;result {}&lt;/code&gt; or &lt;code&gt;flow {}&lt;/code&gt; blocks &amp;ldquo;fail fast&amp;rdquo; (stopping at the first error), &lt;code&gt;validate {}&lt;/code&gt; continues checking even after a failure occurs. This is often called &amp;ldquo;accumulating&amp;rdquo; semantics.&lt;/p&gt;&#xA;&lt;h2 id=&#34;accumulating-with-and&#34;&gt;Accumulating with &lt;code&gt;and!&lt;/code&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The key to accumulation is the &lt;code&gt;and!&lt;/code&gt; keyword. Steps joined by &lt;code&gt;and!&lt;/code&gt; are evaluated independently, and their errors are merged into a &lt;code&gt;Diagnostics&lt;/code&gt; graph.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Architectural Styles</title>
      <link>https://adz.github.io/FsFlow/docs/core-model/architectural-styles/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/core-model/architectural-styles/</guid>
      <description>&lt;h1 id=&#34;architectural-styles&#34;&gt;Architectural Styles&lt;/h1&gt;&#xA;&lt;p&gt;This page shows how the FsFlow workflow family should fit into your application architecture without forcing one app shape on every codebase.&lt;/p&gt;&#xA;&lt;p&gt;FsFlow supports three valid architectural styles.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Three related workflow families. Three valid architectural styles. Choose based on app shape and team preferences.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;1-booted-app-environment&#34;&gt;1. Booted App Environment&lt;/h2&gt;&#xA;&lt;p&gt;Use this when your application already has a conventional booted runtime and passing one explicit application environment keeps composition simple.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Diagnostics Graph</title>
      <link>https://adz.github.io/FsFlow/docs/validation-results/diagnostics/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/validation-results/diagnostics/</guid>
      <description>&lt;h1 id=&#34;diagnostics-graph&#34;&gt;Diagnostics Graph&lt;/h1&gt;&#xA;&lt;p&gt;Unlike many validation libraries that return a flat list of error strings, FsFlow returns a structured &lt;strong&gt;Diagnostics Graph&lt;/strong&gt;. This allows you to represent exactly &lt;em&gt;where&lt;/em&gt; in a complex data structure a failure occurred.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-structure&#34;&gt;The Structure&lt;/h2&gt;&#xA;&lt;p&gt;The graph is a tree where each node can contain local errors and child branches.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;PathSegment&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Key&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;of&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&lt;/span&gt;    &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// A record field or property&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Index&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;of&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;int&lt;/span&gt;     &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// A position in a list or sequence&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Name&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;of&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&lt;/span&gt;   &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// A custom label for a validation branch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Diagnostic&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;error&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Path&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;PathSegment&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;list&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000&#34;&gt;Error&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Diagnostics&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;error&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Errors&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;list&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000&#34;&gt;Children&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Map&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;PathSegment&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Diagnostics&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;error&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;creating-scoped-diagnostics&#34;&gt;Creating Scoped Diagnostics&lt;/h2&gt;&#xA;&lt;p&gt;Inside a &lt;code&gt;validate {}&lt;/code&gt; block, you use helpers to push diagnostics into the tree:&lt;/p&gt;</description>
    </item>
    <item>
      <title>FSharpPlus Integration</title>
      <link>https://adz.github.io/FsFlow/docs/ecosystem/integrations-fsharpplus/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/ecosystem/integrations-fsharpplus/</guid>
      <description>&lt;h1 id=&#34;fsharpplus-integration&#34;&gt;FSharpPlus Integration&lt;/h1&gt;&#xA;&lt;p&gt;This page shows how FsFlow can fit beside codebases that already use &lt;code&gt;FSharpPlus&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;FSharpPlus&lt;/code&gt; is a broad functional base library. That makes it different from the more targeted integration stories like &lt;code&gt;FsToolkit.ErrorHandling&lt;/code&gt;, &lt;code&gt;Validus&lt;/code&gt;, and &lt;code&gt;IcedTasks&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;FsFlow can sit on top of that style where orchestration begins.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;FSharpPlus&lt;/code&gt; is strongest when the codebase already relies on broad generic operations and monad transformer stacks. That strength comes with a cost: more compiler work, more abstraction to keep in your head, and error surfaces that can be harder to read when you are trying to understand a FsFlow boundary.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stream (FlowStream)</title>
      <link>https://adz.github.io/FsFlow/docs/state-concurrency/stream/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/state-concurrency/stream/</guid>
      <description>&lt;h1 id=&#34;stream-flowstream&#34;&gt;Stream (FlowStream)&lt;/h1&gt;&#xA;&lt;p&gt;&lt;code&gt;FlowStream&amp;lt;&#39;env, &#39;error, &#39;value&amp;gt;&lt;/code&gt; represents a &lt;strong&gt;cold&lt;/strong&gt;, pull-based asynchronous stream. Like &lt;code&gt;Flow&lt;/code&gt;, a &lt;code&gt;FlowStream&lt;/code&gt; requires an environment to run and can fail with a typed error. It is built on top of .NET&amp;rsquo;s &lt;code&gt;IAsyncEnumerable&lt;/code&gt;, providing native support for backpressure and asynchronous iteration.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;FlowStream&lt;/code&gt; is currently available on &lt;strong&gt;.NET&lt;/strong&gt; only.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;creating-a-stream&#34;&gt;Creating a Stream&lt;/h2&gt;&#xA;&lt;h3 id=&#34;from-a-sequence&#34;&gt;From a Sequence&lt;/h3&gt;&#xA;&lt;p&gt;The simplest way to create a stream is from an existing &lt;code&gt;seq&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;numbers&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;FlowStream&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;fromSeq&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;..&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;10&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;transforming-streams&#34;&gt;Transforming Streams&lt;/h2&gt;&#xA;&lt;h3 id=&#34;mapping-values&#34;&gt;Mapping Values&lt;/h3&gt;&#xA;&lt;p&gt;You can transform the successful values in a stream using &lt;code&gt;FlowStream.map&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Effect-TS Comparison</title>
      <link>https://adz.github.io/FsFlow/docs/ecosystem/effect-ts-comparison/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/docs/ecosystem/effect-ts-comparison/</guid>
      <description>&lt;h1 id=&#34;effect-ts-comparison&#34;&gt;Effect-TS Comparison&lt;/h1&gt;&#xA;&lt;p&gt;This page shows FsFlow in relation to Effect-TS without pretending they solve the same problem at the same scale.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-carries-over&#34;&gt;What Carries Over&lt;/h2&gt;&#xA;&lt;p&gt;These ideas are shared:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;typed success and error channels&lt;/li&gt;&#xA;&lt;li&gt;explicit dependency access&lt;/li&gt;&#xA;&lt;li&gt;compositional workflow values&lt;/li&gt;&#xA;&lt;li&gt;runtime helpers for retry, timeout, and cancellation-aware execution&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;what-is-different&#34;&gt;What Is Different&lt;/h2&gt;&#xA;&lt;p&gt;FsFlow is aimed at ordinary F# application code:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;flow {}&lt;/code&gt; instead of generator-based syntax, with direct binding for &lt;code&gt;Async&lt;/code&gt;, &lt;code&gt;Task&lt;/code&gt;, &lt;code&gt;ValueTask&lt;/code&gt;, and &lt;code&gt;ColdTask&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;first-class interop with Result, &lt;code&gt;Async&lt;/code&gt;, and &lt;code&gt;.NET Task&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;explicit environment reads such as &lt;code&gt;Flow.read _.Gateway&lt;/code&gt; or &lt;code&gt;Flow.read _.Gateway&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;a much smaller surface focused on application flows rather than a broader runtime platform&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;what-effect-ts-still-has-that-fsflow-does-not&#34;&gt;What Effect-TS Still Has That FsFlow Does Not&lt;/h2&gt;&#xA;&lt;p&gt;Effect-TS is much broader and more mature. FsFlow does not try to match:&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.all</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-all/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-all/</guid>
      <description>&lt;p&gt;Returns success when every check in the sequence succeeds.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Sequentially evaluates each check in the &lt;code&gt;checks&lt;/code&gt; sequence.&#xA;Stops at the first failure.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;checks&lt;/code&gt;: A sequence of checks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds only if all inputs succeed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.and</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-and/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-and/</guid>
      <description>&lt;p&gt;Returns success when both checks succeed.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is a logical &amp;ldquo;and&amp;rdquo; operation. It short-circuits: if &lt;code&gt;left&lt;/code&gt; fails,&#xA;&lt;code&gt;right&lt;/code&gt; is not evaluated.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;left&lt;/code&gt;: The first check.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;right&lt;/code&gt;: The second check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds only if both inputs succeed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.any</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-any/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-any/</guid>
      <description>&lt;p&gt;Returns success when at least one check in the sequence succeeds.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Sequentially evaluates each check in the &lt;code&gt;checks&lt;/code&gt; sequence.&#xA;Stops at the first success.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;checks&lt;/code&gt;: A sequence of checks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if any input succeeds.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.apply</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-apply/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-apply/</guid>
      <description>&lt;p&gt;Applies a flow-wrapped function to a flow-wrapped value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.apply</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-apply/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-apply/</guid>
      <description>&lt;p&gt;Applies a validation-wrapped function to a validation-wrapped value.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The validation containing the function.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The validation containing the value.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;The result of applying the function to the value, with accumulated errors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.at</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-at/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-at/</guid>
      <description>&lt;p&gt;Scopes a validation under the supplied path segments.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;path&lt;/code&gt;: The path segments to apply to the validation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The validation to scope.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation nested under the given path.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.STM.atomically</title>
      <link>https://adz.github.io/FsFlow/reference/stm/m-stm-atomically/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stm/m-stm-atomically/</guid>
      <description>&lt;p&gt;Executes an STM transaction atomically within a flow.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;transaction&lt;/code&gt;: The STM transaction to execute.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A flow that performs the transaction and returns its result.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.bind</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-bind/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-bind/</guid>
      <description>&lt;p&gt;Sequences a synchronous continuation after a successful value.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is the &amp;ldquo;flatmap&amp;rdquo; operation for &lt;code&gt;Flow&lt;/code&gt;. It allows for dependent&#xA;steps where the second flow depends on the value produced by the first.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;binder&lt;/code&gt;: A function that takes the successful value and returns a new flow.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;flow&lt;/code&gt;: The source flow to sequence.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; representing the combined workflow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.bind</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-bind/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-bind/</guid>
      <description>&lt;p&gt;Sequences a validation-producing continuation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is the monadic &amp;ldquo;bind&amp;rdquo; for validation. Note that this operation short-circuits&#xA;and does not accumulate errors from the binder if the source has already failed.&#xA;For accumulation, use &lt;code&gt;map2&lt;/code&gt; or the applicative &lt;code&gt;and!&lt;/code&gt; syntax.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;binder&lt;/code&gt;: A function of type &lt;code&gt;&#39;value -&amp;gt; Validation&amp;amp;lt;&#39;next, &#39;error&amp;amp;gt;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The source validation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;The result of the binder or the original diagnostics.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.blank</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-blank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-blank/</guid>
      <description>&lt;p&gt;Returns success when the string is blank.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the string is blank.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.catch</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-catch/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-catch/</guid>
      <description>&lt;p&gt;Catches exceptions raised during execution and maps them to a typed error.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Exceptions that are not caught by this helper will bubble up to the caller of &lt;code&gt;run&lt;/code&gt;.&#xA;This ensures that known exceptions can be handled within the flow context.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;handler&lt;/code&gt;: A function of type &lt;code&gt;exn -&amp;gt; &#39;error&lt;/code&gt; to map the exception.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;flow&lt;/code&gt;: The source flow of type &lt;code&gt;Flow&lt;/code&gt; to monitor.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; that converts exceptions into success-path errors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Check</title>
      <link>https://adz.github.io/FsFlow/reference/check/t-check/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/t-check/</guid>
      <description>&lt;p&gt;A reusable predicate result that either preserves a value on success or acts as a gate with&#xA;&lt;code&gt;unit&lt;/code&gt; on success, while carrying a unit failure placeholder until the caller maps it into&#xA;a domain-specific error.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Use the &lt;code&gt;Check&lt;/code&gt; module helpers to create and compose checks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.collect</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-collect/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-collect/</guid>
      <description>&lt;p&gt;Collects a sequence of validations into a single validation of a list.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This operation is applicative: it will collect errors from ALL items in the sequence.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;validations&lt;/code&gt;: A sequence of type &lt;code&gt;seq&amp;amp;lt;Validation&amp;amp;lt;&#39;value, &#39;error&amp;amp;gt;&amp;amp;gt;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation containing the list of values or accumulated diagnostics.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.delay</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-delay/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-delay/</guid>
      <description>&lt;p&gt;Defers flow construction until execution time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariableErrors.describe</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariableerrors-describe/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariableerrors-describe/</guid>
      <description>&lt;p&gt;Formats a human-readable description for an error.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Diagnostic</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/t-diagnostic/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/t-diagnostic/</guid>
      <description>&lt;p&gt;A single failure item attached to a path in a validation graph.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Diagnostics</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/t-diagnostics/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/t-diagnostics/</guid>
      <description>&lt;p&gt;A mergeable validation graph that carries local errors and nested child branches.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;para&gt;&#xA; `Errors` holds the application errors attached exactly to the current node, while&#xA; `Children` holds nested branches keyed by `PathSegment`.&#xA; &lt;/para&gt;&#xA; &lt;para&gt;&#xA; This structure allows hierarchical validation to stay navigable before flattening.&#xA; Use `flatten` to convert it into a linear list.&#xA; &lt;/para&gt;</description>
    </item>
    <item>
      <title>FsFlow.DiagnosticsModule.empty</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-empty/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-empty/</guid>
      <description>&lt;p&gt;Creates an empty diagnostics graph with no errors.&lt;/p&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;An empty &lt;code&gt;Diagnostics&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Env</title>
      <link>https://adz.github.io/FsFlow/reference/capability/t-env/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/capability/t-env/</guid>
      <description>&lt;p&gt;Request token for projecting a value from a dependency.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Builders read the dependency from the environment, apply the projection, and then reuse the&#xA;existing lift/bind behavior for the projected value. If the projection returns a&#xA;&lt;code&gt;Result&lt;/code&gt;, &lt;code&gt;Async&lt;/code&gt;, &lt;code&gt;Task&lt;/code&gt;, &lt;code&gt;ValueTask&lt;/code&gt;, &lt;code&gt;ColdTask&lt;/code&gt;, &lt;code&gt;option&lt;/code&gt;, or&#xA;&lt;code&gt;voption&lt;/code&gt;, the existing workflow rules still apply.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;IClock&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;UtcNow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unit&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;gt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;DateTimeOffset&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;ClockCaps&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;inherit&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Needs&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;lt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;IClock&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;gt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Clock&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;IClock&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;readClockNow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;lt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;#&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;ClockCaps&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unit&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;DateTimeOffset&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;gt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;now&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Env&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;lt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;IClock&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;gt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;_.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;UtcNow&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;now&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.env</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-env/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-env/</guid>
      <description>&lt;p&gt;Reads the current environment as the flow value.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Use this when the entire environment object is needed for the next step of the workflow.&#xA;For projecting specific properties, &lt;code&gt;read&lt;/code&gt; is generally more ergonomic.&lt;/p&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; whose successful value is the current environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CapabilityModule.environment</title>
      <link>https://adz.github.io/FsFlow/reference/capability/m-capabilitymodule-environment/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/capability/m-capabilitymodule-environment/</guid>
      <description>&lt;p&gt;Reads the application environment from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariableError</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/t-core-environmentvariableerror/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/t-core-environmentvariableerror/</guid>
      <description>&lt;p&gt;Describes a meaningful environment-variable failure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.equal</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-equal/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-equal/</guid>
      <description>&lt;p&gt;Returns success when the values are equal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;expected&lt;/code&gt;: The expected value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;actual&lt;/code&gt;: The actual value.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the values are equal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.error</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-error/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-error/</guid>
      <description>&lt;p&gt;Creates a failing synchronous flow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.error</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-error/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-error/</guid>
      <description>&lt;p&gt;Creates a failing validation result with the provided diagnostics.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;diagnostics&lt;/code&gt;: The &lt;code&gt;Diagnostics&lt;/code&gt; graph.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A failing &lt;code&gt;Validation&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Process.ProcessModule.execute</title>
      <link>https://adz.github.io/FsFlow/reference/caps-process/m-process-processmodule-execute/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-process/m-process-processmodule-execute/</guid>
      <description>&lt;p&gt;Executes a process using the process environment and returns the result.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.FileSystem.FileSystemModule.exists</title>
      <link>https://adz.github.io/FsFlow/reference/caps-filesystem/m-filesystem-filesystemmodule-exists/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-filesystem/m-filesystem-filesystemmodule-exists/</guid>
      <description>&lt;p&gt;Checks if a file exists using the file system environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ScheduleModule.exponential</title>
      <link>https://adz.github.io/FsFlow/reference/schedule/m-schedulemodule-exponential/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/schedule/m-schedulemodule-exponential/</guid>
      <description>&lt;p&gt;Creates a schedule that recurs with exponential backoff.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.fail</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-fail/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-fail/</guid>
      <description>&lt;p&gt;Alias for &lt;code&gt;error&lt;/code&gt; that reads well in some call sites.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;fail&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;error&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;result&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#3465a4&#34;&gt;()&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// result = Failure (Cause.Fail &amp;#34;error&amp;#34;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.fail</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-fail/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-fail/</guid>
      <description>&lt;p&gt;Alias for &lt;code&gt;error&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;diagnostics&lt;/code&gt;: The &lt;code&gt;Diagnostics&lt;/code&gt; graph.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A failing &lt;code&gt;Validation&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIf</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failif/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failif/</guid>
      <description>&lt;p&gt;Returns success when the condition is false.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;cond&lt;/code&gt;: The boolean condition to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if &lt;code&gt;cond&lt;/code&gt; is false.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfBlank</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifblank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifblank/</guid>
      <description>&lt;p&gt;Returns the string when it is blank.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the blank string.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfEmpty</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifempty/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifempty/</guid>
      <description>&lt;p&gt;Returns the sequence when it is not empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;coll&lt;/code&gt;: The sequence to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the non-empty sequence.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfEmptyStr</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifemptystr/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifemptystr/</guid>
      <description>&lt;p&gt;Returns the string when it is null or empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the empty or null string.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfEqual</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifequal/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifequal/</guid>
      <description>&lt;p&gt;Returns success when the values are equal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;expected&lt;/code&gt;: The expected value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;actual&lt;/code&gt;: The actual value.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the values are equal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfNone</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnone/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnone/</guid>
      <description>&lt;p&gt;Returns the value when the option is &lt;code&gt;Some&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;opt&lt;/code&gt;: The option to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the value if present.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfNonEmptyStr</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnonemptystr/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnonemptystr/</guid>
      <description>&lt;p&gt;Returns success when the string is null or empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the string is null or empty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfNotBlank</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnotblank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnotblank/</guid>
      <description>&lt;p&gt;Returns success when the string is blank.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the string is blank.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfNotEmpty</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnotempty/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnotempty/</guid>
      <description>&lt;p&gt;Returns success when the sequence is empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;coll&lt;/code&gt;: The sequence to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the sequence is empty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfNotEqual</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnotequal/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnotequal/</guid>
      <description>&lt;p&gt;Returns success when the values are not equal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;expected&lt;/code&gt;: The expected value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;actual&lt;/code&gt;: The actual value.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the values differ.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfNotNull</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnotnull/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnotnull/</guid>
      <description>&lt;p&gt;Returns success when the value is null.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The value to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the value is null.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfNull</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnull/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifnull/</guid>
      <description>&lt;p&gt;Returns the value when it is null.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The value to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the null value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfSome</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifsome/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifsome/</guid>
      <description>&lt;p&gt;Returns success when the option is &lt;code&gt;None&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;opt&lt;/code&gt;: The option to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the option is &lt;code&gt;None&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfValueNone</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifvaluenone/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifvaluenone/</guid>
      <description>&lt;p&gt;Returns the value when the value option is &lt;code&gt;ValueSome&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;opt&lt;/code&gt;: The value option to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the value if present.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.failIfValueSome</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifvaluesome/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-failifvaluesome/</guid>
      <description>&lt;p&gt;Returns success when the value option is &lt;code&gt;ValueNone&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;opt&lt;/code&gt;: The value option to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the value option is &lt;code&gt;ValueNone&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Fiber</title>
      <link>https://adz.github.io/FsFlow/reference/flow/t-fiber/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/t-fiber/</guid>
      <description>&lt;p&gt;Represents a handle to a running workflow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.DiagnosticsModule.flatten</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-flatten/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-flatten/</guid>
      <description>&lt;p&gt;Flattens the structured diagnostics graph into a linear list of diagnostics.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;During flattening, child paths are accumulated from the root down into each emitted diagnostic.&#xA;The tree itself stores only local errors and child branches, while &lt;code&gt;Diagnostic&lt;/code&gt;&#xA;is reserved for reporting output.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;graph&lt;/code&gt;: The &lt;code&gt;Diagnostics&lt;/code&gt; to flatten.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A list of type &lt;code&gt;Diagnostic&lt;/code&gt; list.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Builders.flow</title>
      <link>https://adz.github.io/FsFlow/reference/flow/p-builders-flow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/p-builders-flow/</guid>
      <description>&lt;p&gt;The universal &lt;code&gt;flow { }&lt;/code&gt; computation expression.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;para&gt;&#xA; Use this builder when the boundary can mix synchronous values, `Async`, `Task`,&#xA; `Result`, and environment requests while keeping typed failures and explicit&#xA; dependency access.&#xA; &lt;/para&gt;&#xA; &lt;para&gt;&#xA; It preserves the current environment model while allowing the workflow to compose&#xA; task-oriented inputs directly, so callers do not need to switch builders just to cross&#xA; an async boundary.&#xA; &lt;/para&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;greeting&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;env&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;suffix&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;async&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;!&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hello, {name}{suffix}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow</title>
      <link>https://adz.github.io/FsFlow/reference/flow/t-flow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/t-flow/</guid>
      <description>&lt;p&gt;Represents a cold workflow that reads an environment, returns a typed result, and is executed&#xA;explicitly through &lt;code&gt;Flow.run&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>flow { }</title>
      <link>https://adz.github.io/FsFlow/reference/flow/builders-flow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/builders-flow/</guid>
      <description>&lt;p&gt;The &lt;code&gt;flow { }&lt;/code&gt; builder is the primary entry point for orchestrating synchronous, async, and task-based work.&lt;/p&gt;&#xA;&lt;h2 id=&#34;builder&#34;&gt;Builder&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://adz.github.io/FsFlow/reference/flow/p-builders-flow/&#34;&gt;&lt;code&gt;FsFlow.Builders.flow&lt;/code&gt;&lt;/a&gt;: The universal &lt;code&gt;flow { }&lt;/code&gt; computation expression.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>FsFlow.FlowStream</title>
      <link>https://adz.github.io/FsFlow/reference/stream/t-flowstream/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stream/t-flowstream/</guid>
      <description>&lt;p&gt;Represents a cold stream of values that requires an environment, can fail with a typed error,&#xA;and supports backpressure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.fork</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-fork/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-fork/</guid>
      <description>&lt;p&gt;Starts a flow in a new fiber without waiting for it to complete.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;flow&lt;/code&gt;: The flow to fork.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A flow that produces a &lt;code&gt;Fiber&lt;/code&gt; handle.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.fromOption</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-fromoption/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-fromoption/</guid>
      <description>&lt;p&gt;Lifts an option into a synchronous flow with the supplied error.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;opt&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Some&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;value&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;fromOption&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;missing&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;opt&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariables.fromPairs</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariables-frompairs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariables-frompairs/</guid>
      <description>&lt;p&gt;Creates a deterministic provider from a fixed set of name/value pairs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.fromPredicate</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-frompredicate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-frompredicate/</guid>
      <description>&lt;p&gt;Builds a check from a predicate while preserving the successful value.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;predicate&lt;/code&gt;: A function of type &lt;code&gt;&#39;value -&amp;gt; bool&lt;/code&gt; to test the value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The value of type &lt;code&gt;&#39;value&lt;/code&gt; to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the value if the predicate succeeds.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.fromResult</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-fromresult/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-fromresult/</guid>
      <description>&lt;p&gt;Lifts a &lt;code&gt;Result&lt;/code&gt; into a synchronous flow.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;res&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Ok&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;success&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;fromResult&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;res&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.fromResult</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-fromresult/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-fromresult/</guid>
      <description>&lt;p&gt;Lifts a standard &lt;code&gt;Result&lt;/code&gt; into the &lt;code&gt;Validation&lt;/code&gt; context.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;If the result is an error, it is wrapped in a root-level &lt;code&gt;Diagnostics&lt;/code&gt; graph.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;result&lt;/code&gt;: The result to lift.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Validation&lt;/code&gt; mirroring the result.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.FlowStreamModule.fromSeq</title>
      <link>https://adz.github.io/FsFlow/reference/stream/m-flowstreammodule-fromseq/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stream/m-flowstreammodule-fromseq/</guid>
      <description>&lt;p&gt;Creates a stream from a sequence of values.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Clock.fromValue</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-clock-fromvalue/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-clock-fromvalue/</guid>
      <description>&lt;p&gt;Creates a deterministic clock that always returns the supplied instant.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Guid.fromValue</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-guid-fromvalue/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-guid-fromvalue/</guid>
      <description>&lt;p&gt;Creates a deterministic GUID generator that always returns the supplied value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Random.fromValue</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-random-fromvalue/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-random-fromvalue/</guid>
      <description>&lt;p&gt;Creates a deterministic random generator that always returns the supplied value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.fromValueOption</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-fromvalueoption/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-fromvalueoption/</guid>
      <description>&lt;p&gt;Lifts a value option into a synchronous flow with the supplied error.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;error&lt;/code&gt;: The error to return if the value option is &lt;code&gt;ValueNone&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The value option to lift.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; that succeeds with the option&amp;rsquo;s value or fails with the provided error.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariable.get</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-get/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-get/</guid>
      <description>&lt;p&gt;Reads a raw string environment variable from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.RefModule.get</title>
      <link>https://adz.github.io/FsFlow/reference/ref/m-refmodule-get/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/ref/m-refmodule-get/</guid>
      <description>&lt;p&gt;Reads the current value of the reference.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.TRefModule.get</title>
      <link>https://adz.github.io/FsFlow/reference/stm/m-trefmodule-get/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stm/m-trefmodule-get/</guid>
      <description>&lt;p&gt;Reads the current value of the transactional reference within a transaction.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariable.getBool</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-getbool/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-getbool/</guid>
      <description>&lt;p&gt;Reads a boolean environment variable from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariable.getGuid</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-getguid/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-getguid/</guid>
      <description>&lt;p&gt;Reads a GUID environment variable from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariable.getInt</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-getint/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-getint/</guid>
      <description>&lt;p&gt;Reads an integer environment variable from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Http.HttpModule.getString</title>
      <link>https://adz.github.io/FsFlow/reference/caps-http/m-http-httpmodule-getstring/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-http/m-http-httpmodule-getstring/</guid>
      <description>&lt;p&gt;Sends a GET request using the HTTP environment and returns the response body.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.IClock</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/t-core-iclock/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/t-core-iclock/</guid>
      <description>&lt;p&gt;Provides synchronous access to the current UTC clock.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Console.IConsole</title>
      <link>https://adz.github.io/FsFlow/reference/caps-console/t-console-iconsole/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-console/t-console-iconsole/</guid>
      <description>&lt;p&gt;Provides synchronous access to standard console I/O.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.IEnvironmentVariables</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/t-core-ienvironmentvariables/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/t-core-ienvironmentvariables/</guid>
      <description>&lt;p&gt;Provides synchronous environment-variable lookup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.FileSystem.IFileSystem</title>
      <link>https://adz.github.io/FsFlow/reference/caps-filesystem/t-filesystem-ifilesystem/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-filesystem/t-filesystem-ifilesystem/</guid>
      <description>&lt;p&gt;Provides synchronous access to file system operations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.ignore</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-ignore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-ignore/</guid>
      <description>&lt;p&gt;Maps the successful value of a synchronous flow to &lt;code&gt;unit&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.ignore</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-ignore/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-ignore/</guid>
      <description>&lt;p&gt;Maps a successful validation value to &lt;code&gt;unit&lt;/code&gt; while preserving the diagnostics.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The source validation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation that keeps the original diagnostics and discards the success value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.IGuid</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/t-core-iguid/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/t-core-iguid/</guid>
      <description>&lt;p&gt;Provides synchronous GUID generation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Http.IHttp</title>
      <link>https://adz.github.io/FsFlow/reference/caps-http/t-http-ihttp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-http/t-http-ihttp/</guid>
      <description>&lt;p&gt;Provides asynchronous access to HTTP client operations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.index</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-index/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-index/</guid>
      <description>&lt;p&gt;Prefixes a validation with an indexed branch.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;index&lt;/code&gt;: The branch index.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The validation to scope.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation whose diagnostics are prefixed with &lt;code&gt;Index index&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.interrupt</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-interrupt/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-interrupt/</guid>
      <description>&lt;p&gt;Signals a fiber to stop and waits for it to finish its cleanup.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;fiber&lt;/code&gt;: The fiber to interrupt.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A flow that completes with the fiber&amp;rsquo;s final outcome after interruption.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Process.IProcess</title>
      <link>https://adz.github.io/FsFlow/reference/caps-process/t-process-iprocess/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-process/t-process-iprocess/</guid>
      <description>&lt;p&gt;Provides asynchronous access to external process execution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.IRandom</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/t-core-irandom/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/t-core-irandom/</guid>
      <description>&lt;p&gt;Provides synchronous random-number generation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ScheduleModule.jittered</title>
      <link>https://adz.github.io/FsFlow/reference/schedule/m-schedulemodule-jittered/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/schedule/m-schedulemodule-jittered/</guid>
      <description>&lt;p&gt;Adds random jitter to a schedule&amp;rsquo;s delay.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.join</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-join/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-join/</guid>
      <description>&lt;p&gt;Waits for a fiber to complete and returns its final outcome.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;fiber&lt;/code&gt;: The fiber to join.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A flow that completes with the fiber&amp;rsquo;s outcome.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.key</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-key/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-key/</guid>
      <description>&lt;p&gt;Prefixes a validation with a keyed branch.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;key&lt;/code&gt;: The branch key.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The validation to scope.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation whose diagnostics are prefixed with &lt;code&gt;Key key&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Console.ConsoleModule.live</title>
      <link>https://adz.github.io/FsFlow/reference/caps-console/p-console-consolemodule-live/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-console/p-console-consolemodule-live/</guid>
      <description>&lt;p&gt;Creates a live console backed by &lt;code&gt;Console&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Clock.live</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/p-core-clock-live/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/p-core-clock-live/</guid>
      <description>&lt;p&gt;Creates a live clock backed by &lt;code&gt;UtcNow&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariables.live</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/p-core-environmentvariables-live/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/p-core-environmentvariables-live/</guid>
      <description>&lt;p&gt;Creates a live provider backed by the current process environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Guid.live</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/p-core-guid-live/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/p-core-guid-live/</guid>
      <description>&lt;p&gt;Creates a live GUID generator backed by &lt;code&gt;NewGuid&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Random.live</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/p-core-random-live/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/p-core-random-live/</guid>
      <description>&lt;p&gt;Creates a live random-number generator backed by &lt;code&gt;Random&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.FileSystem.FileSystemModule.live</title>
      <link>https://adz.github.io/FsFlow/reference/caps-filesystem/p-filesystem-filesystemmodule-live/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-filesystem/p-filesystem-filesystemmodule-live/</guid>
      <description>&lt;p&gt;Creates a live file system backed by &lt;code&gt;File&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Http.HttpModule.live</title>
      <link>https://adz.github.io/FsFlow/reference/caps-http/m-http-httpmodule-live/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-http/m-http-httpmodule-live/</guid>
      <description>&lt;p&gt;Creates a live HTTP client backed by &lt;code&gt;HttpClient&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Process.ProcessModule.live</title>
      <link>https://adz.github.io/FsFlow/reference/caps-process/p-process-processmodule-live/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-process/p-process-processmodule-live/</guid>
      <description>&lt;p&gt;Creates a live process runner backed by &lt;code&gt;Process&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.localEnv</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-localenv/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-localenv/</guid>
      <description>&lt;p&gt;Transforms the environment before running the flow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.RefModule.make</title>
      <link>https://adz.github.io/FsFlow/reference/ref/m-refmodule-make/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/ref/m-refmodule-make/</guid>
      <description>&lt;p&gt;Creates a new &lt;code&gt;Ref&lt;/code&gt; with the initial value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.TRefModule.make</title>
      <link>https://adz.github.io/FsFlow/reference/stm/m-trefmodule-make/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stm/m-trefmodule-make/</guid>
      <description>&lt;p&gt;Creates a new &lt;code&gt;TRef&lt;/code&gt; with the initial value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.map</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-map/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-map/</guid>
      <description>&lt;p&gt;Maps the successful value of a synchronous flow.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;If the source &lt;code&gt;flow&lt;/code&gt; fails, the &lt;code&gt;mapper&lt;/code&gt; is not executed,&#xA;and the error is preserved. This allows for safe transformation of data within the flow.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;mapper&lt;/code&gt;: A function of type &lt;code&gt;&#39;value -&amp;gt; &#39;next&lt;/code&gt; to transform the successful value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;flow&lt;/code&gt;: The source flow of type &lt;code&gt;Flow&lt;/code&gt; to transform.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A new &lt;code&gt;Flow&lt;/code&gt; with the transformed success value of type &lt;code&gt;&#39;next&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.FlowStreamModule.map</title>
      <link>https://adz.github.io/FsFlow/reference/stream/m-flowstreammodule-map/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stream/m-flowstreammodule-map/</guid>
      <description>&lt;p&gt;Maps the successful values of a stream.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.map</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-map/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-map/</guid>
      <description>&lt;p&gt;Maps the successful value of a validation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;mapper&lt;/code&gt;: A function of type &lt;code&gt;&#39;value -&amp;gt; &#39;next&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The source &lt;code&gt;Validation&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation with the transformed success value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.map2</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-map2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-map2/</guid>
      <description>&lt;p&gt;Combines two flows with a mapping function.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.map2</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-map2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-map2/</guid>
      <description>&lt;p&gt;Combines two validations, accumulating errors if both fail.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is the core applicative operation. If both &lt;code&gt;left&lt;/code&gt; and&#xA;&lt;code&gt;right&lt;/code&gt; fail, their diagnostics graphs are merged.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;mapper&lt;/code&gt;: A function of type &lt;code&gt;&#39;left -&amp;gt; &#39;right -&amp;gt; &#39;value&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;left&lt;/code&gt;: The first validation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;right&lt;/code&gt;: The second validation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation with the combined result.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.map3</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-map3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-map3/</guid>
      <description>&lt;p&gt;Combines three flows with a mapping function.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.map3</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-map3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-map3/</guid>
      <description>&lt;p&gt;Combines three validations, accumulating errors when any input fails.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;mapper&lt;/code&gt;: A function of type &lt;code&gt;&#39;left -&amp;gt; &#39;middle -&amp;gt; &#39;right -&amp;gt; &#39;value&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;left&lt;/code&gt;: The first validation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;middle&lt;/code&gt;: The second validation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;right&lt;/code&gt;: The third validation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation with the combined result.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.mapError</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-maperror/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-maperror/</guid>
      <description>&lt;p&gt;Maps the error value of a synchronous flow.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Transforms the error type of the flow while leaving successful values untouched.&#xA;Useful for mapping internal errors into public-facing domain errors.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;mapper&lt;/code&gt;: The function to transform the error value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;flow&lt;/code&gt;: The source flow.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; with the transformed error type.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.mapError</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-maperror/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-maperror/</guid>
      <description>&lt;p&gt;Maps the error type of a validation graph.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;mapper&lt;/code&gt;: A function of type &lt;code&gt;&#39;error -&amp;gt; &#39;nextError&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The source &lt;code&gt;Validation&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation with transformed error values.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.DiagnosticsModule.merge</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-merge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-merge/</guid>
      <description>&lt;p&gt;Recursively merges two diagnostics graphs, combining shared branches and local errors.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is the core operation for applicative validation. It ensures that errors from sibling&#xA;fields are collected together into a single structured graph.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;left&lt;/code&gt;: The first graph of type &lt;code&gt;Diagnostics&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;right&lt;/code&gt;: The second graph of type &lt;code&gt;Diagnostics&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A new &lt;code&gt;Diagnostics&lt;/code&gt; containing the union of both inputs.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.merge</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-merge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-merge/</guid>
      <description>&lt;p&gt;Merges two validations into a validation of a tuple.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;left&lt;/code&gt;: The first validation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;right&lt;/code&gt;: The second validation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation containing a tuple of the results.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.MissingCapability</title>
      <link>https://adz.github.io/FsFlow/reference/capability/t-missingcapability/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/capability/t-missingcapability/</guid>
      <description>&lt;p&gt;Describes a missing service-provider capability.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.RefModule.modify</title>
      <link>https://adz.github.io/FsFlow/reference/ref/m-refmodule-modify/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/ref/m-refmodule-modify/</guid>
      <description>&lt;p&gt;Updates the value of the reference using the supplied function and returns a derived value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.name</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-name/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-name/</guid>
      <description>&lt;p&gt;Prefixes a validation with a named branch.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;name&lt;/code&gt;: The branch name.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The validation to scope.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation whose diagnostics are prefixed with &lt;code&gt;Name name&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Needs</title>
      <link>https://adz.github.io/FsFlow/reference/capability/t-needs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/capability/t-needs/</guid>
      <description>&lt;p&gt;Describes the capability contract for a single dependency.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Named cap-set interfaces inherit this contract once and then expose the dependency through a&#xA;member such as &lt;code&gt;Clock&lt;/code&gt; or &lt;code&gt;Logger&lt;/code&gt;. Workflow builders can accept any environment&#xA;that implements &lt;code&gt;Needs&amp;amp;lt;&#39;dep&amp;amp;gt;&lt;/code&gt;, which lets larger runtimes satisfy smaller&#xA;boundaries.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;IClock&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;UtcNow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;unit&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;gt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;DateTimeOffset&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;ClockCaps&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;inherit&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Needs&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;lt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;IClock&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;gt&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;abstract&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Clock&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;IClock&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Guid.newGuid</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-guid-newguid/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-guid-newguid/</guid>
      <description>&lt;p&gt;Reads a GUID from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Random.nextInt</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-random-nextint/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-random-nextint/</guid>
      <description>&lt;p&gt;Reads a random integer from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.not</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-not/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-not/</guid>
      <description>&lt;p&gt;Returns success when the supplied check fails.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is a logical &amp;ldquo;not&amp;rdquo; operation for checks. Note that it discards the success value&#xA;and returns &lt;code&gt;Unit&lt;/code&gt; on success.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;check&lt;/code&gt;: The source &lt;code&gt;Check&lt;/code&gt; to invert.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the input fails.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.notBlank</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-notblank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-notblank/</guid>
      <description>&lt;p&gt;Returns the string when it is not blank.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the non-blank string.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.notEmpty</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-notempty/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-notempty/</guid>
      <description>&lt;p&gt;Returns the sequence when it is not empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;coll&lt;/code&gt;: The sequence to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the non-empty sequence.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.notEqual</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-notequal/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-notequal/</guid>
      <description>&lt;p&gt;Returns success when the values are not equal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;expected&lt;/code&gt;: The expected value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;actual&lt;/code&gt;: The actual value.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the values differ.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.notNull</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-notnull/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-notnull/</guid>
      <description>&lt;p&gt;Returns the value when it is not null.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The value to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the non-null value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.Clock.now</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-clock-now/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-clock-now/</guid>
      <description>&lt;p&gt;Reads the current UTC timestamp from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.ok</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-ok/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-ok/</guid>
      <description>&lt;p&gt;Creates a successful synchronous flow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.ok</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-ok/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-ok/</guid>
      <description>&lt;p&gt;Creates a successful validation result.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The success value of type &lt;code&gt;&#39;value&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A successful &lt;code&gt;Validation&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIf</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okif/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okif/</guid>
      <description>&lt;p&gt;Returns success when the condition is true.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;cond&lt;/code&gt;: The boolean condition to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if &lt;code&gt;cond&lt;/code&gt; is true.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfBlank</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifblank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifblank/</guid>
      <description>&lt;p&gt;Returns success when the string is blank.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the string is null, empty, or whitespace.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfEmpty</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifempty/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifempty/</guid>
      <description>&lt;p&gt;Returns success when the sequence is empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;coll&lt;/code&gt;: The sequence to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the sequence is empty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfEmptyStr</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifemptystr/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifemptystr/</guid>
      <description>&lt;p&gt;Returns success when the string is null or empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the string is null or empty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfEqual</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifequal/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifequal/</guid>
      <description>&lt;p&gt;Returns success when the values are equal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;expected&lt;/code&gt;: The expected value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;actual&lt;/code&gt;: The actual value.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the values are equal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfNone</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnone/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnone/</guid>
      <description>&lt;p&gt;Returns success when the option is &lt;code&gt;None&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;opt&lt;/code&gt;: The option to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the option is &lt;code&gt;None&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfNonEmptyStr</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnonemptystr/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnonemptystr/</guid>
      <description>&lt;p&gt;Returns the string when it is not null or empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the non-empty string.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfNotBlank</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnotblank/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnotblank/</guid>
      <description>&lt;p&gt;Returns the string when it is not blank.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;str&lt;/code&gt;: The string to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the non-blank string.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfNotEmpty</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnotempty/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnotempty/</guid>
      <description>&lt;p&gt;Returns the sequence when it is not empty.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;coll&lt;/code&gt;: The sequence of type &lt;code&gt;seq&amp;amp;lt;&#39;a&amp;amp;gt;&lt;/code&gt; to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the non-empty sequence.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfNotEqual</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnotequal/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnotequal/</guid>
      <description>&lt;p&gt;Returns success when the values are not equal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;expected&lt;/code&gt;: The expected value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;actual&lt;/code&gt;: The actual value.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the values differ.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfNotNull</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnotnull/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnotnull/</guid>
      <description>&lt;p&gt;Returns the value when it is not null.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The value of type &lt;code&gt;&#39;a&lt;/code&gt; to check for null.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the non-null value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfNull</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnull/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifnull/</guid>
      <description>&lt;p&gt;Returns success when the value is null.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The value to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the value is null.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfSome</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifsome/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifsome/</guid>
      <description>&lt;p&gt;Returns the value when the option is &lt;code&gt;Some&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;opt&lt;/code&gt;: The &lt;code&gt;FSharpOption&lt;/code&gt; to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the value if present.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfValueNone</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifvaluenone/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifvaluenone/</guid>
      <description>&lt;p&gt;Returns success when the value option is &lt;code&gt;ValueNone&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;opt&lt;/code&gt;: The value option to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if the value option is &lt;code&gt;ValueNone&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.okIfValueSome</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifvaluesome/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-okifvaluesome/</guid>
      <description>&lt;p&gt;Returns the value when the value option is &lt;code&gt;ValueSome&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;opt&lt;/code&gt;: The &lt;code&gt;FSharpValueOption&lt;/code&gt; to check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; containing the value if present.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.or</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-or/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-or/</guid>
      <description>&lt;p&gt;Returns success when either check succeeds.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is a logical &amp;ldquo;or&amp;rdquo; operation. It short-circuits: if &lt;code&gt;left&lt;/code&gt; succeeds,&#xA;&lt;code&gt;right&lt;/code&gt; is not evaluated.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;left&lt;/code&gt;: The first check.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;right&lt;/code&gt;: The second check.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Check&lt;/code&gt; that succeeds if either input succeeds.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.orElse</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-orelse/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-orelse/</guid>
      <description>&lt;p&gt;Falls back to another flow when the source flow fails.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.orElse</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-orelse/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-orelse/</guid>
      <description>&lt;p&gt;Falls back to another validation when the source validation fails.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is a left-biased choice operator. If the source succeeds, the fallback is not used.&#xA;If the source fails, the fallback validation is returned as-is.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;fallback&lt;/code&gt;: The validation to use when the source fails.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The source validation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;The source validation when it succeeds, otherwise the fallback validation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.orElseFlow</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-orelseflow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-orelseflow/</guid>
      <description>&lt;p&gt;Turns a pure validation result into a synchronous flow with environment-provided failure.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This helper bridges the gap between pure validation (which often uses &lt;code&gt;Result&lt;/code&gt; or &lt;code&gt;Check&lt;/code&gt;)&#xA;and the &lt;code&gt;Flow&lt;/code&gt; environment model. If the result is an error, the provided &lt;code&gt;errorFlow&lt;/code&gt;&#xA;is executed to produce the final application error.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;errorFlow&lt;/code&gt;: A flow that reads the environment to produce an error value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;result&lt;/code&gt;: The pure result to bridge.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; that mirrors the success of the result or fails with the outcome of the error flow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.orElseWith</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-orelsewith/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-orelsewith/</guid>
      <description>&lt;p&gt;Falls back to another flow when the source flow fails.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.orElseWith</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-orelsewith/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-orelsewith/</guid>
      <description>&lt;p&gt;Computes a fallback validation from the source diagnostics when validation fails.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is the lazy counterpart to &lt;code&gt;orElse&lt;/code&gt; and is useful when the alternate&#xA;branch depends on the accumulated diagnostics.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;fallback&lt;/code&gt;: A function that turns the diagnostics into an alternate validation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The source validation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;The source validation when it succeeds, otherwise the computed fallback validation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.orError</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-orerror/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-orerror/</guid>
      <description>&lt;p&gt;Maps a unit error into the supplied application error value.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is the primary bridge from checks to domain-specific results.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;error&lt;/code&gt;: The domain error of type &lt;code&gt;&#39;error&lt;/code&gt; to return on failure.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;result&lt;/code&gt;: The source &lt;code&gt;Check&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Result&lt;/code&gt; with the provided error value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CheckModule.orErrorWith</title>
      <link>https://adz.github.io/FsFlow/reference/check/m-checkmodule-orerrorwith/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/check/m-checkmodule-orerrorwith/</guid>
      <description>&lt;p&gt;Maps a unit error into an application error produced on demand.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;errorFn&lt;/code&gt;: A function of type &lt;code&gt;unit -&amp;gt; &#39;error&lt;/code&gt; to produce the error.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;result&lt;/code&gt;: The source &lt;code&gt;Check&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Result&lt;/code&gt; with the produced error value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Path</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/t-path/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/t-path/</guid>
      <description>&lt;p&gt;A path through a validation graph, represented as a list of &lt;code&gt;PathSegment&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.PathSegment</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/t-pathsegment/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/t-pathsegment/</guid>
      <description>&lt;p&gt;Location markers used to describe where a diagnostic belongs in a validation graph.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Process.ProcessResult</title>
      <link>https://adz.github.io/FsFlow/reference/caps-process/t-process-processresult/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-process/t-process-processresult/</guid>
      <description>&lt;p&gt;Represents the outcome of an external process execution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.LayerModule.provideLayer</title>
      <link>https://adz.github.io/FsFlow/reference/capability/m-layermodule-providelayer/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/capability/m-layermodule-providelayer/</guid>
      <description>&lt;p&gt;Provides a derived environment from a layer flow to a downstream flow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.provideLayer</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-providelayer/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-providelayer/</guid>
      <description>&lt;p&gt;Provides a derived environment from a layer flow to a downstream flow.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.race</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-race/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-race/</guid>
      <description>&lt;p&gt;Runs two flows concurrently and returns the result of the first one to complete.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;The &amp;ldquo;loser&amp;rdquo; flow is interrupted immediately.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.read</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-read/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-read/</guid>
      <description>&lt;p&gt;Projects a value from the current environment.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is the primary way to access dependencies or configuration stored in the environment.&#xA;The &lt;code&gt;projection&lt;/code&gt; function is applied to the environment at execution time.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;projection&lt;/code&gt;: A function that extracts a value from the environment.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; containing the projected value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.FileSystem.FileSystemModule.readAllText</title>
      <link>https://adz.github.io/FsFlow/reference/caps-filesystem/m-filesystem-filesystemmodule-readalltext/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-filesystem/m-filesystem-filesystemmodule-readalltext/</guid>
      <description>&lt;p&gt;Reads all text from a file using the file system environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Console.ConsoleModule.readLine</title>
      <link>https://adz.github.io/FsFlow/reference/caps-console/m-console-consolemodule-readline/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-console/m-console-consolemodule-readline/</guid>
      <description>&lt;p&gt;Reads a line from the console environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ScheduleModule.recurs</title>
      <link>https://adz.github.io/FsFlow/reference/schedule/m-schedulemodule-recurs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/schedule/m-schedulemodule-recurs/</guid>
      <description>&lt;p&gt;Creates a schedule that recurs a fixed number of times.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Ref</title>
      <link>https://adz.github.io/FsFlow/reference/ref/t-ref/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/ref/t-ref/</guid>
      <description>&lt;p&gt;Represents a handle to a mutable reference that can be updated atomically.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Builders.result</title>
      <link>https://adz.github.io/FsFlow/reference/result/p-builders-result/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/result/p-builders-result/</guid>
      <description>&lt;p&gt;The fail-fast &lt;code&gt;result { }&lt;/code&gt; computation expression.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;para&gt;&#xA; Use this builder when the happy path should short-circuit on the first error&#xA; and you want to keep the workflow in `Result` shape all the way through.&#xA; &lt;/para&gt;&#xA; &lt;para&gt;&#xA; It works well for parsing, validation, and other boundaries where failure is expected&#xA; to stop the flow immediately instead of accumulating diagnostics.&#xA; &lt;/para&gt;&#xA; &lt;para&gt;&#xA; Use `Check.orError` when a pure check needs a domain error, and `Guard.MapError` when&#xA; you need to remap an existing error before entering the CE.&#xA; &lt;/para&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;parsedUser&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#000&#34;&gt;result&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;age&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;parseAge&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;input&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;parseName&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;input&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Age&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;age&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Result Builder</title>
      <link>https://adz.github.io/FsFlow/reference/result/builders-result/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/result/builders-result/</guid>
      <description>&lt;p&gt;The &lt;code&gt;result { }&lt;/code&gt; builder provides a fail-fast computation expression for standard F# Result values.&lt;/p&gt;&#xA;&lt;h2 id=&#34;builder&#34;&gt;Builder&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://adz.github.io/FsFlow/reference/result/p-builders-result/&#34;&gt;&lt;code&gt;FsFlow.Builders.result&lt;/code&gt;&lt;/a&gt;: The fail-fast &lt;code&gt;result { }&lt;/code&gt; computation expression.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.run</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-run/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-run/</guid>
      <description>&lt;p&gt;Executes a flow with the provided environment and the default cancellation token.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;read&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;fun&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;env&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;$&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hello, {env}!&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;result&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;World&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// result = Effect that resolves to Success &amp;#34;Hello, World!&amp;#34; on both .NET and Fable&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.FlowStreamModule.runForEach</title>
      <link>https://adz.github.io/FsFlow/reference/stream/m-flowstreammodule-runforeach/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stream/m-flowstreammodule-runforeach/</guid>
      <description>&lt;p&gt;Executes the stream and performs an action for each value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CapabilityModule.runtime</title>
      <link>https://adz.github.io/FsFlow/reference/capability/m-capabilitymodule-runtime/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/capability/m-capabilitymodule-runtime/</guid>
      <description>&lt;p&gt;Reads the current runtime from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Schedule</title>
      <link>https://adz.github.io/FsFlow/reference/schedule/t-schedule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/schedule/t-schedule/</guid>
      <description>&lt;p&gt;Represents a stateful schedule that can decide whether to continue and how long to delay.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.sequence</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-sequence/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-sequence/</guid>
      <description>&lt;p&gt;Transforms a sequence of flows into a flow of a sequence and stops at the first failure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.sequence</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-sequence/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-sequence/</guid>
      <description>&lt;p&gt;Transforms a sequence of validations into a validation of a list.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;validations&lt;/code&gt;: The input sequence.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation containing the list of values.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CapabilityModule.service</title>
      <link>https://adz.github.io/FsFlow/reference/capability/m-capabilitymodule-service/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/capability/m-capabilitymodule-service/</guid>
      <description>&lt;p&gt;Reads a service from the environment using the provided projection.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.CapabilityModule.serviceFromProvider</title>
      <link>https://adz.github.io/FsFlow/reference/capability/m-capabilitymodule-servicefromprovider/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/capability/m-capabilitymodule-servicefromprovider/</guid>
      <description>&lt;p&gt;Reads a service from &lt;code&gt;IServiceProvider&lt;/code&gt; and fails when it is not registered.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.RefModule.set</title>
      <link>https://adz.github.io/FsFlow/reference/ref/m-refmodule-set/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/ref/m-refmodule-set/</guid>
      <description>&lt;p&gt;Sets the value of the reference to the specified value.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.TRefModule.set</title>
      <link>https://adz.github.io/FsFlow/reference/stm/m-trefmodule-set/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stm/m-trefmodule-set/</guid>
      <description>&lt;p&gt;Sets the value of the transactional reference within a transaction.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.DiagnosticsModule.singleton</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-singleton/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-singleton/</guid>
      <description>&lt;p&gt;Creates a diagnostics graph containing exactly one error at the root.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;error&lt;/code&gt;: The application error to store at the root.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Diagnostics&lt;/code&gt; with a single error.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ScheduleModule.spaced</title>
      <link>https://adz.github.io/FsFlow/reference/schedule/m-schedulemodule-spaced/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/schedule/m-schedulemodule-spaced/</guid>
      <description>&lt;p&gt;Creates a schedule that recurs with a fixed delay between attempts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.FlowScheduleExtensions.Flow.Repeat.Static</title>
      <link>https://adz.github.io/FsFlow/reference/schedule/m-flowscheduleextensions-flow-repeat-static/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/schedule/m-flowscheduleextensions-flow-repeat-static/</guid>
      <description>&lt;p&gt;Repeats a successful flow according to the supplied schedule.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.FlowScheduleExtensions.Flow.Retry.Static</title>
      <link>https://adz.github.io/FsFlow/reference/schedule/m-flowscheduleextensions-flow-retry-static/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/schedule/m-flowscheduleextensions-flow-retry-static/</guid>
      <description>&lt;p&gt;Retries a failing flow according to the supplied schedule.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.StmBuilders.stm</title>
      <link>https://adz.github.io/FsFlow/reference/stm/p-stmbuilders-stm/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stm/p-stmbuilders-stm/</guid>
      <description>&lt;p&gt;The &lt;code&gt;stm { }&lt;/code&gt; computation expression for building atomic transactions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.STM</title>
      <link>https://adz.github.io/FsFlow/reference/stm/t-stm/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stm/t-stm/</guid>
      <description>&lt;p&gt;Represents a transactional operation that can be composed and executed atomically.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.succeed</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-succeed/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-succeed/</guid>
      <description>&lt;p&gt;Alias for &lt;code&gt;ok&lt;/code&gt; that reads well in some call sites.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;succeed&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;42&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;result&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;run&lt;/span&gt; &lt;span style=&#34;color:#3465a4&#34;&gt;()&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// result = Success 42&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.succeed</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-succeed/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-succeed/</guid>
      <description>&lt;p&gt;Alias for &lt;code&gt;ok&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;value&lt;/code&gt;: The success value of type &lt;code&gt;&#39;value&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A successful &lt;code&gt;Validation&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.tap</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-tap/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-tap/</guid>
      <description>&lt;p&gt;Runs a synchronous side effect on success and preserves the original value.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Use this for logging, telemetry, or other &amp;ldquo;fire and forget&amp;rdquo; operations that should not&#xA;alter the primary value path. If the &lt;code&gt;binder&lt;/code&gt; flow fails, the entire&#xA;flow fails with that error.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;binder&lt;/code&gt;: A function that produces a side-effect flow from the successful value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;flow&lt;/code&gt;: The source flow.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; that preserves the original success value after the side effect.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.tapError</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-taperror/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-taperror/</guid>
      <description>&lt;p&gt;Runs a synchronous side effect on failure and preserves the original error.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Use this for error logging or cleanup actions that depend on the environment.&#xA;If the &lt;code&gt;binder&lt;/code&gt; side-effect flow itself fails, its error will&#xA;overwrite the original error.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;binder&lt;/code&gt;: A function that produces a side-effect flow from the error value.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;flow&lt;/code&gt;: The source flow.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A &lt;code&gt;Flow&lt;/code&gt; that preserves the original error after the side effect.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.toResult</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-toresult/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-toresult/</guid>
      <description>&lt;p&gt;Converts a &lt;code&gt;Validation&lt;/code&gt; into a standard &lt;code&gt;Result&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;validation&lt;/code&gt;: The validation to convert.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A result containing either the success value or the full diagnostics graph.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.DiagnosticsModule.toString</title>
      <link>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-tostring/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/diagnostics/m-diagnosticsmodule-tostring/</guid>
      <description>&lt;p&gt;Renders a diagnostics graph in a YAML-like layout for display.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is intended for human-readable output. Empty sections are omitted, and children are&#xA;shown directly under their branch labels at the same indentation level as errors. Errors&#xA;render as YAML-style bullet items without an &lt;code&gt;Errors:&lt;/code&gt; key. Use&#xA;&lt;code&gt;flatten&lt;/code&gt; when you need path-bearing diagnostics for&#xA;reporting or assertions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;graph&lt;/code&gt;: The diagnostics graph to render.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A formatted string representation of the graph.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Runtime.Telemetry.Activity.trace</title>
      <link>https://adz.github.io/FsFlow/reference/telemetry/m-runtime-telemetry-activity-trace/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/telemetry/m-runtime-telemetry-activity-trace/</guid>
      <description>&lt;p&gt;Wraps a flow in a new activity and automatically maps metadata traits from the environment to tags.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;name&lt;/code&gt;: The name of the activity.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;flow&lt;/code&gt;: The flow to trace.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A flow that executes within the activity span.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.traverse</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-traverse/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-traverse/</guid>
      <description>&lt;p&gt;Transforms a sequence of values into a flow and stops at the first failure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.ValidationModule.traverseIndexed</title>
      <link>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-traverseindexed/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/m-validationmodule-traverseindexed/</guid>
      <description>&lt;p&gt;Maps a sequence into validations while prefixing each item with its index.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;This is the indexed version of &lt;code&gt;sequence&lt;/code&gt;. It is useful for list and array&#xA;validation because each item can keep its own &lt;code&gt;Index&lt;/code&gt;&#xA;branch without the caller manually wrapping every item.&lt;/p&gt;&#xA;&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;binder&lt;/code&gt;: A function of type &lt;code&gt;int -&amp;gt; &#39;source -&amp;gt; Validation&amp;amp;lt;&#39;value, &#39;error&amp;amp;gt;&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;values&lt;/code&gt;: The input sequence.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;returns&#34;&gt;Returns&lt;/h2&gt;&#xA;&lt;p&gt;A validation containing the list of values or accumulated diagnostics.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.TRef</title>
      <link>https://adz.github.io/FsFlow/reference/stm/t-tref/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stm/t-tref/</guid>
      <description>&lt;p&gt;Represents a transactional reference that can be updated atomically within an &lt;code&gt;STM&lt;/code&gt; transaction.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariable.tryGet</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-tryget/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariable-tryget/</guid>
      <description>&lt;p&gt;Reads a raw string environment variable without wrapping it in a result.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Core.EnvironmentVariables.tryGet</title>
      <link>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariables-tryget/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-core/m-core-environmentvariables-tryget/</guid>
      <description>&lt;p&gt;Reads a raw environment-variable value from the environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.RefModule.update</title>
      <link>https://adz.github.io/FsFlow/reference/ref/m-refmodule-update/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/ref/m-refmodule-update/</guid>
      <description>&lt;p&gt;Updates the value of the reference using the supplied function.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.TRefModule.update</title>
      <link>https://adz.github.io/FsFlow/reference/stm/m-trefmodule-update/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/stm/m-trefmodule-update/</guid>
      <description>&lt;p&gt;Updates the value of the transactional reference within a transaction using the supplied function.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Builders.validate</title>
      <link>https://adz.github.io/FsFlow/reference/validation/p-builders-validate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/p-builders-validate/</guid>
      <description>&lt;p&gt;The accumulating &lt;code&gt;validate { }&lt;/code&gt; computation expression.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;para&gt;&#xA; Use this builder when you want to collect all validation failures instead of stopping&#xA; at the first one.&#xA; &lt;/para&gt;&#xA; &lt;para&gt;&#xA; Use `and!` when sibling validations should accumulate into the same diagnostics graph.&#xA; Plain `let!` and `do!` are sequential: if the left side fails, the later step is&#xA; not evaluated.&#xA; &lt;/para&gt;&#xA; &lt;para&gt;&#xA; `Check&lt;&#39;value&gt;` covers both value-preserving checks and gate checks.&#xA; Use `Check.orError` to attach an application error, and `Guard.Of` /&#xA; `Guard.MapError` when you want the same error-bound source shape to participate&#xA; directly in validation.&#xA; &lt;/para&gt;&#xA; &lt;para&gt;&#xA; When nested API response fields need to keep their place in the diagnostics graph, use&#xA; the scoped helpers `validate.key`, `validate.index`, and `validate.name`&#xA; inside the computation expression. If you already have a `Validation` value, use&#xA; `Validation.key`, `Validation.index`, or `Validation.name` to prefix it&#xA; after the fact.&#xA; &lt;/para&gt;&#xA; &lt;para&gt;&#xA; It is intended for forms, configuration checks, and other input-heavy boundaries where&#xA; the user benefits from seeing every problem at once.&#xA; &lt;/para&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validatedUser&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#000&#34;&gt;validate&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;notBlank&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;input&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Name&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;age&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;okIf&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;input&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Age&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Age must be positive&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Age&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;age&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;validatedCustomer&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;validate&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;key&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;customer&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#000&#34;&gt;validate&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Name&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;!&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;input&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Name&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;notBlank&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;|&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Check&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;orError&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Name required&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;name&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>validate { }</title>
      <link>https://adz.github.io/FsFlow/reference/validation/builders-validate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/builders-validate/</guid>
      <description>&lt;p&gt;The &lt;code&gt;validate { }&lt;/code&gt; builder is used for accumulating sibling failures into a structured diagnostics graph.&lt;/p&gt;&#xA;&lt;h2 id=&#34;builder&#34;&gt;Builder&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://adz.github.io/FsFlow/reference/validation/p-builders-validate/&#34;&gt;&lt;code&gt;FsFlow.Builders.validate&lt;/code&gt;&lt;/a&gt;: The accumulating &lt;code&gt;validate { }&lt;/code&gt; computation expression.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>FsFlow.Hosting.Startup.validateEnvironment</title>
      <link>https://adz.github.io/FsFlow/reference/hosting/m-hosting-startup-validateenvironment/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/hosting/m-hosting-startup-validateenvironment/</guid>
      <description>&lt;p&gt;Validates that all required environment variables are present and valid using the process environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Validation</title>
      <link>https://adz.github.io/FsFlow/reference/validation/t-validation/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/validation/t-validation/</guid>
      <description>&lt;p&gt;An accumulating validation result that keeps the structured diagnostics graph visible.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;Unlike &lt;code&gt;FSharpResult&lt;/code&gt;, this type is designed for applicative&#xA;composition using &lt;code&gt;and!&lt;/code&gt; in the &lt;code&gt;validate { }&lt;/code&gt; builder, which merges errors instead of&#xA;short-circuiting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.value</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-value/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-value/</guid>
      <description>&lt;p&gt;Alias for &lt;code&gt;ok&lt;/code&gt; that reads well in some call sites.&lt;/p&gt;&#xA;&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fsharp&#34; data-lang=&#34;fsharp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;flow&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Flow&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;value&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;constant&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.FileSystem.FileSystemModule.writeAllText</title>
      <link>https://adz.github.io/FsFlow/reference/caps-filesystem/m-filesystem-filesystemmodule-writealltext/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-filesystem/m-filesystem-filesystemmodule-writealltext/</guid>
      <description>&lt;p&gt;Writes all text to a file using the file system environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Caps.Console.ConsoleModule.writeLine</title>
      <link>https://adz.github.io/FsFlow/reference/caps-console/m-console-consolemodule-writeline/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/caps-console/m-console-consolemodule-writeline/</guid>
      <description>&lt;p&gt;Writes a line to the console environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.zip</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-zip/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-zip/</guid>
      <description>&lt;p&gt;Combines two flows into a tuple of their values.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FsFlow.Flow.zipPar</title>
      <link>https://adz.github.io/FsFlow/reference/flow/m-flow-zippar/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://adz.github.io/FsFlow/reference/flow/m-flow-zippar/</guid>
      <description>&lt;p&gt;Combines two flows into a tuple of their values, running them concurrently.&lt;/p&gt;&#xA;&lt;h2 id=&#34;remarks&#34;&gt;Remarks&lt;/h2&gt;&#xA;&lt;p&gt;If either flow fails, the other is interrupted immediately.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
