<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="340290" data-post-id="340290">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I agree that it’s noisy, it just became my default because very often I had to consume APIs where I couldn’t influence the return values of the functions (hence your <code>{:organisation_error, error_information}</code> was often not possible to have). To me <code>with</code> plus tagging seemed like the better cope.</p>
<p>We had lengthy discussions on the forum in the past and I could see the perceived benefits of making smaller functions that call the 3rd party API and slightly reshape their returns (very often you would want to convert <code>:error</code> to <code>{:error, :cannot_parse_url}</code> for example) but I could not see the objectively demonstrable value of (1) adding extra functions, (2) reshaping the return values of the wrapped API just so we emulate an extra atom in a tuple in a <code>with</code> chain. <img src="https://forum.elixirforum.com/images/emoji/apple/person_shrugging.png?v=15" title=":person_shrugging:" class="emoji" alt=":person_shrugging:" loading="lazy" width="20" height="20"> It was just a preference that many people stated that they have but I was still left unconvinced because, again, it was just a preference.</p>
<p>I have to be honest here, the older I get the more I want LESS freedom for anyone in programming to just do stuff as they prefer – myself included, I made quite some impressive messes many times and really should have been slapped back to other techniques.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340290" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-340290" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340290"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="340294" data-post-id="340294">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="camstuart" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/camstuart/120/18856_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  camstuart
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Same here!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340294" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-340294" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340294"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="340297" data-post-id="340297">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Sorc96" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Sorc96/120/28361_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Sorc96
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>So I’ve tried a few things as well and this is what I came up with.</p>
<p>First of all, the steps for onboarding a user should probably be combined in a context/core function, not in the web facing layer. I agree with the origin check being done in a plug, so after doing that, this is what the controller function would look like:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def onboard(conn, params) do
  organization_attrs = %{
    ...
  }
  user_attrs = %{
    ...
  }

  case Users.onboard(organization_attrs, user_attrs) do
    {:ok, user} -&gt;
      ...

    {:error, :invalid_organization_data, changeset} -&gt;
      ...

    {:error, :invalid_user_data, changeset} -&gt;
      ...
  end
</code></pre>
<p>This would require the <code>Users.onboard</code> function to combine the functions from other modules and tag the errors. If we want to avoid the <code>with</code> and tagging approach, we end up with small single-use functions like this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Users do
  def onboard(organization_attrs, user_attrs) do
    with {:ok, organization} &lt;- upsert_organization(organization_attrs) do
      user_attrs
      |&gt; Map.put(:organization_id, organization.id)
      |&gt; upsert_user()
    end
  end

  def upsert_organization(attrs) do
    case Organizations.upsert(attrs) do
      {:ok, organization} -&gt; {:ok, organization}
      {:error, changeset} -&gt; {:error, :invalid_organization_data, changeset}
    end
  end

  def upsert_user(attrs) do
    case ExternalAccounts.upsert_user(attrs) do
      {:ok, user} -&gt; {:ok, user}
      {:error, changeset} -&gt; {:error, :invalid_user_data, changeset}
    end
  end
end
</code></pre>
<p>When we extract the parts of these tiny functions that remain the same, we can see that what we actually need is to simply tag the errors. This could lead to the following code:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule Users do
  def onboard(organization_attrs, user_attrs) do
    with {:ok, organization} &lt;-
           Organizations.upsert(organization_attrs) |&gt; tag_error(:invalid_organization_data) do
      user_attrs
      |&gt; Map.put(:organization_id, organization.id)
      |&gt; ExternalAccounts.upsert_user(attrs)
      |&gt; tag_error(:invalid_user_data)
    end
  end

  defp tag_error({:ok, _} = result, _tag), do: result
  defp tag_error({:error, info}, tag), do: {:error, tag, info}
end
</code></pre>
<p>My conclusion is that this is reason number fifteen million and forty seven why Elixir should have built-in functions for working with result values. What do others think about this?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340297" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-340297" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340297"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="340298" data-post-id="340298">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Lucassifoni" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Lucassifoni/120/39057_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Lucassifoni
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Sorc96" data-post="14" data-topic="66180">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorc96/48/28361_2.png" class="avatar"> Sorc96:</div>
<blockquote>
<p>this is reason number fifteen million and forty seven why Elixir should have built-in functions for working with result values</p>
</blockquote>
</aside>
<p>I thought this too at some point. A few years later I felt that pattern matching itself is an highly expressive and flexible tool and that using it is better than more stdlib surface…</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340298" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-340298" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340298"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="340299" data-post-id="340299">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Sorc96" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Sorc96/120/28361_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Sorc96
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I still think that pattern matching on results is the simplest way, but inevitably I see people making all kinds of utility functions like my <code>tag_error</code> here. If these were a part of the standard library, we would have a unified way to do things, instead of everyone rolling their own (which can be a good enough reason not to do this at all).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340299" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-340299" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340299"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="340300" data-post-id="340300">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="D4no0" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/D4no0/120/33624_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  D4no0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m not sure about that. From all the projects I worked on, I’ve seen or used this kind of tag strategy exactly zero times, I can understand why you would want to do that sometimes.</p>
<p>What you achieved is <em>a solution</em>, not <em>the solution</em>, hence why I don’t see the need of additional functionality supporting this in the stdlib. If you find yourself using these in all of your projects, you can always publish a library and use it in those places.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340300" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-340300" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340300"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="340305" data-post-id="340305">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Sorc96" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Sorc96/120/28361_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Sorc96
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think this is exactly the reason why there should be an official way to do things. The problem is handling multiple steps which may fail and returning information about which of them failed. That situation exists in literally every program beyond hello world.</p>
<p>Solutions have been discussed many times in many threads and people can never agree on what to actually do, which results in many approaches and libraries, even though the problem is conceptually pretty simple.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340305" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-340305" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340305"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="340306" data-post-id="340306">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="D4no0" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/D4no0/120/33624_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  D4no0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Sorc96" data-post="18" data-topic="66180">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorc96/48/28361_2.png" class="avatar"> Sorc96:</div>
<blockquote>
<p>Solutions have been discussed many times in many threads and people can never agree on what to actually do, which results in many approaches and libraries, even though the problem is conceptually pretty simple.</p>
</blockquote>
</aside>
<p>Is it though? I think this is a simplistic view and the problem itself is much more complex. Each presented solution has its own drawbacks and they should be chosen accordingly depending on how the system should behave.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340306" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-340306" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340306"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="340309" data-post-id="340309">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Sorc96" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Sorc96/120/28361_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Sorc96
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think the three solutions presented in this thread differ only in syntax. The least magical solution is simply nesting <code>case</code> expressions. That’s clearly ugly and I’m not surprised that most people would prefer something else.</p>
<p>Then <code>with</code> comes to the rescue, so the steps are now clearly in order, but now we don’t know which of them failed. So we end up adding a tag somewhere. Either to the whole step, which adds noise and requires <code>else</code> to convert <code>{step, {:error, info}}</code> into something the caller will understand like <code>{:error, step, info}</code> or <code>{:error, {step, info}}</code>.</p>
<p>Or the tag can only be added to the error, which removes the need for the <code>else</code>, but requires either those tiny single-use functions (like the docs suggest), or a generalization that only adds a tag to the error.</p>
<p>But in the end, it’s still just syntax and I could even be persuaded into going back to nesting <code>case</code> expressions, because at least everybody knows what is going on with them.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340309" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-340309" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340309"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="340314" data-post-id="340314">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="D4no0" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/D4no0/120/33624_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  D4no0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Sorc96" data-post="20" data-topic="66180">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sorc96/48/28361_2.png" class="avatar"> Sorc96:</div>
<blockquote>
<p>Then <code>with</code> comes to the rescue, so the steps are now clearly in order, but now we don’t know which of them failed. So we end up adding a tag somewhere. Either to the whole step, which adds noise and requires <code>else</code> to convert <code>{step, {:error, info}}</code> into something the caller will understand like <code>{:error, step, info}</code> or <code>{:error, {step, info}}</code>.</p>
</blockquote>
</aside>
<p>Using <code>with</code> with multiple <code>else</code> clauses is a anti-pattern IMO. If you restrict usage of <code>else</code> clause you get a better image on how you can handle errors at the edge of the system.</p>
<p>That being said, if we open a bit the can of worms, error handling is also not black and white, suppose you can have the following types of errors:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir"># An intermediate error in the system that you will handle down the line
{:error, :not_found}

# A final error that you will never want to handle, 
# just pass it to the edge of the system
{:error, "Could not find entry with id #{id}"}
</code></pre>
<p>Both have their usages, but the way they impact your codebase is completely different and this is not only syntax difference. The final error is a perfect case where it can be used with <code>with</code>, as in that case all you care about is the happy path, which you should always do when using <code>with</code> IMO.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340314" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/help-with-idiomatic-elixir-style-when-dealing-with-logic-flow/66180/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-340314" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340314"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/66180/load_more?page=3">Load more posts (11 remaining)</a>
</div></template></turbo-stream>