title: avoiding nesting `Result<'T,'TError>`
body: <p>Suppose we have this <code>input</code>:</p>
  <pre class="lang-ml prettyprint-override"><code>let input =
      [
          &quot;0.10&quot;
          &quot;0.21&quot;
          &quot;forty&quot;
          &quot;5.32&quot;
          &quot;q6.20&quot;
      ]
  </code></pre>
  <p>Mapping this input to F# results leads to <code>Result&lt;'T,'TError&gt; list</code>:</p>
  <pre class="lang-ml prettyprint-override"><code>open System
  
  let output =
      input
      |&gt; List.map (
          fun s -&gt;
              match Decimal.TryParse s with
              | true, i -&gt; Ok i
              | _ -&gt; Error $&quot;failed to parse `{s}`&quot;
          )
  
  output |&gt; printf &quot;%A&quot;
  </code></pre>
  <pre><code>[Ok 0.10M; Ok 0.21M; Error &quot;failed to parse `forty`&quot;; Ok 5.32M;
   Error &quot;failed to parse `q6.20`&quot;]
  </code></pre>
  <p>Is this is a generally accepted way to collect results?</p>
  <p>Or, is there a concern for scalability and performance such that only one aggregate Result is returned for the entire list? Something like <code>Result&lt;'T,'TError list&gt;</code>? Would <code>FsToolkit.ErrorHandling</code> [<a href="https://github.com/demystifyfp/FsToolkit.ErrorHandling" rel="nofollow noreferrer">GitHub</a>] be available for this or am I missing a pattern baked into the language?</p>
  <p>Would this solution handle lists of lists to avoid returning <code>Result&lt;Result&lt;'T,'TError&gt; list&gt;, 'TError&gt;</code>?</p>