<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Validation on FsFlow</title>
    <link>https://adz.github.io/FsFlow/reference/validation/</link>
    <description>Recent content in Validation on FsFlow</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://adz.github.io/FsFlow/reference/validation/index.xml" rel="self" type="application/rss+xml" />
    <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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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>
  </channel>
</rss>
