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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                    <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 class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><span class="mention">@hissssst</span>, my whole reply was about <em>the problem statement</em>. I understand the cons of the current solution, but the cons of the current solution isn’t a dismissal of the problem statement itself. Those are two separate things.</p>
<aside class="quote no-group" data-username="hissssst" data-post="89" data-topic="60130">
<div class="title">
<div class="quote-controls"></div>
 hissssst:</div>
<blockquote>
<p>That’s a great goal. But as I’ve described, this solution won’t make it easier for Python devs to onboard, because it won’t behave like mutable variable in any sense.</p>
</blockquote>
</aside>
<p>Your argument is based on corner cases of how the same variable is reassigned within the same list. I honestly can’t recall seeing these examples in either Elixir or Python/Ruby/JS code. I can be convinced that it can be confusing, but that argument ain’t it.</p>
<aside class="quote no-group" data-username="hissssst" data-post="89" data-topic="60130">
<div class="title">
<div class="quote-controls"></div>
 hissssst:</div>
<blockquote>
<p>So you’re not suggesting learning <code>for</code> with accumulators instead of <code>Enum</code>, you’re actually suggesting learning <code>for</code> with accumulators <strong>and</strong> <code>Enum</code>. (this is a conclusion)</p>
</blockquote>
</aside>
<p>Sure, but is this really a problem?</p>
<p>Elixir doesn’t strictly need the Task module. You can do everything it does with either GenServer and regular process abstractions. But it is an extremely useful component for both Elixir on boarding experience and in actual applications.</p>
<p>Imagine if every time we wanted to do async/await, we told people to write this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">list
|&gt; Enum.map(fn item -&gt;
  ref = make_ref()
  parent = self()
  spawn_link(fn -&gt; send(parent, {ref, ...}) end)
  ref
end)
|&gt; Enum.map(fn ref -&gt;
  receive do
    {^ref, reply} -&gt; reply
  end
end)
</code></pre>
<p>Which is akin to how Erlang developers would express it.</p>
<p>We often try to make common patterns in Elixir more accessible. And the duality you mention exists pretty much in Ruby, Python, JS, Java, Rust, etc. Once again, I don’t think we should do it because those languages do it, but the costs of having two approaches to these problems are minimal (and common).</p>
<p>To be clear: I am not speaking about this particular solution, just the problem statement in itself and the assumption that “Enum is fine”.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310113" data-batch-url="/posts/batch_likers">
                        6
                      </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/local-accumulators-for-cleaner-comprehensions/60130/93">Post #92</a>
	                </div>
	            </div>
              <div id="likers-container-310113" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310113"
                     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 #92"></div>
  </section>
</div>
    <div class="postbit" id="310115" data-post-id="310115">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I might be wrong, but I think <a class="mention" href="/u/josevalim" rel="nofollow">@josevalim</a> drafted this new proposal because we ended up agreeing that <code>mut</code> or other keywords would not make that obvious where the accumulators are being defined <strong>and</strong> being used - in contrast with using <code>@@</code>, which makes it extremely explicit in both cases.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310115" 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/local-accumulators-for-cleaner-comprehensions/60130/94">Post #93</a>
	                </div>
	            </div>
              <div id="likers-container-310115" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310115"
                     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 #93"></div>
  </section>
</div>
    <div class="postbit" id="310116" data-post-id="310116">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                    <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 class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>A compromise would be a block:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">accum session_counter &lt;- 0, lesson_counter &lt;- 0 do
  ...
end
</code></pre>
<p>It has benefits from both approaches:</p>
<ol>
<li>The block helps limit the scope of where the variables are used, so we worry less about large functions</li>
<li>No additional syntax noise such as <code>@@</code> (although that can be a cons as usage is less clear)</li>
</ol>
<p>It also helps keep the theme that all of <code>for</code>, <code>with</code>, and then <code>accum</code> are actually monads (but let’s not call them that <img src="https://forum.elixirforum.com/images/emoji/apple/sweat_smile.png?v=15" title=":sweat_smile:" class="emoji" alt=":sweat_smile:" loading="lazy" width="20" height="20">).</p>
<hr>
<p>Of course, the other option is to introduce the accumulators directly into comprehensions, as others suggestions:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">list = [1, 2]
for val &lt;- list, binding: [a: 0, b: 1] do
  a = a + val
  b = b + val
end
</code></pre>
<p>But the comprehension syntax is already quite overloaded, unfortunately, and different enough to add to the confusion (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="310116" data-batch-url="/posts/batch_likers">
                        23
                      </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/local-accumulators-for-cleaner-comprehensions/60130/95">Post #94</a>
	                </div>
	            </div>
              <div id="likers-container-310116" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310116"
                     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 #94"></div>
  </section>
</div>
    <div class="postbit" id="310117" data-post-id="310117">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="hst337" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  hst337
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote group-livebook_core_team" data-username="josevalim" data-post="93" data-topic="60130">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/48/1787_2.png" class="avatar"> josevalim:</div>
<blockquote>
<p>but the costs of having two approaches to these problems are minimal (and common).</p>
</blockquote>
</aside>
<p>That’s where we disagree. Having <code>Task</code> module containing only functions to make one-off processes simpler is not the same as having a special syntax, special semantics and compiler-magic for list traversals. I am not against having two ways of doing things instead of one. This makes sense, if these two ways cover different tradeoffs (performance vs expression, etc).</p>
<p>However, it is not like there are more cons than pros. This proposal has zero pros. It won’t lower learning barrier, because</p>
<ul>
<li>One more thing to learn</li>
<li>Works differently from Python, Elixir, Ruby and every other popular language.</li>
<li>Has extremely difficult to understand cases (breaking the loop, for example) due to possible internal implementation (because I think that you won’t rewrite the whole compiler just for this feature)</li>
</ul>
<p><em>(I’ve explained all of the points in detail in my first post in this thread)</em></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310117" 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/local-accumulators-for-cleaner-comprehensions/60130/96">Post #95</a>
	                </div>
	            </div>
              <div id="likers-container-310117" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310117"
                     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 #95"></div>
  </section>
</div>
    <div class="postbit" id="310118" data-post-id="310118">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="thiagomajesk" data-post="94" data-topic="60130" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/thiagomajesk/48/31904_2.png" class="avatar"> thiagomajesk:</div>
<blockquote>
<p>I might be wrong, but I think <a class="mention" href="/u/josevalim" rel="nofollow">@josevalim</a> drafted this new proposal because we ended up agreeing that <code>mut</code> or other keywords would not make that obvious where the accumulators are being defined <strong>and</strong> being used - in contrast with using <code>@@</code>, which makes it extremely explicit in both cases.</p>
</blockquote>
</aside>
<p>I did see a couple of comments to that effect and wondered if there was another reason. If there isn’t then I would be inclined to respectfully disagree. I think the declaring keyword (whether it is <code>mut</code> or <code>acc</code> or anything else) may actually be enough, and if anyone thought it wasn’t and wanted something more immediately explicit then they could either use their own prefix as per my example, or (perhaps after a lot of feedback) the Elixir Core Team can later introduce a special character and use deprecation notices to encourage people to update their code.</p>
<aside class="quote group-livebook_core_team quote-modified" data-username="josevalim" data-post="95" data-topic="60130">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/48/1787_2.png" class="avatar"> josevalim:</div>
<blockquote>
<p>A compromise would be a block:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">accum session_counter &lt;- 0, lesson_counter &lt;- 0 do
  ...
end
</code></pre>
<p>It has benefits from both approaches:</p>
<ol>
<li>The block helps limit the scope of where the variables are used, so we worry less about large functions</li>
<li>But without introducing a notation such as <code>@@</code></li>
</ol>
<p>It also helps keep the theme that all of <code>for</code>, <code>with</code>, and then <code>accum</code> are actually monads (but let’s not call them that <img src="https://forum.elixirforum.com/images/emoji/apple/sweat_smile.png?v=15" title=":sweat_smile:" class="emoji" alt=":sweat_smile:" loading="lazy" width="20" height="20">).</p>
</blockquote>
</aside>
<p>I like that too! <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310118" 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/local-accumulators-for-cleaner-comprehensions/60130/97">Post #96</a>
	                </div>
	            </div>
              <div id="likers-container-310118" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310118"
                     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 #96"></div>
  </section>
</div>
    <div class="postbit" id="310119" data-post-id="310119">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="josevalim" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/josevalim/120/1787_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  josevalim
                    <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 class="user-title">
									<span>Creator of Elixir</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="gregvaughn" data-post="53" data-topic="60130">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/gregvaughn/48/954_2.png" class="avatar"> gregvaughn:</div>
<blockquote>
<p>I wonder if we could go in some other direction such as better using the <code>into</code> option and a custom <code>Collectable</code>. Or, now that I think about it, what if <code>into</code> could also accept an anonymous or named function instead of needing a <code>defimpl</code> module? I need to spend more time thinking about this since it’s a fresh idea.</p>
</blockquote>
</aside>
<p>Yes, I thought about this as well, but I struggle on both:</p>
<ol>
<li>how to make it efficient</li>
<li>how to make it work in this case</li>
</ol>
<p>For example, one of my ideas is to allow a tuple to given to <code>into</code>, so we can collect multiple things at once:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">for i &lt;- [1, 2, 3], into: {[], ""} do
  {i * 2, i + ?0}
end
#=&gt; {[2, 4, 6], "123"}
</code></pre>
<p>And we could quite optimize it. However, the issue about <code>into</code> is that it assumes we know how the value is updated. So if we take an integer as the initial value for <code>into</code>, we have two options:</p>
<ol>
<li>Assume it will always be a sum, which does not help directly in this case</li>
<li>Assume it will always be “last value wins” but then it mismatches the list semantics</li>
</ol>
<p>At the end of the day, the <code>into</code> bit is more about the <code>map</code> part of  <code>map_reduce</code> than the <code>reduce</code> one, which is why I don’t think it is a good fit, unfortunately.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310119" 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/local-accumulators-for-cleaner-comprehensions/60130/98">Post #97</a>
	                </div>
	            </div>
              <div id="likers-container-310119" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310119"
                     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 #97"></div>
  </section>
</div>
    <div class="postbit" id="310123" data-post-id="310123">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I <em>really</em> like <code>accum</code> with a block (which of course I do because I suggested something <em>similar</em> above and likely wasn’t the first).  Even if lots of people “abuse it,” it’s <em>very</em> clear what the scope of the accumulators is.  It also looks like other cases in elixir where variables appear to “mutate.”</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310123" data-batch-url="/posts/batch_likers">
                        8
                      </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/local-accumulators-for-cleaner-comprehensions/60130/100">Post #99</a>
	                </div>
	            </div>
              <div id="likers-container-310123" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310123"
                     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 #99"></div>
  </section>
</div>
    <div class="postbit" id="310124" data-post-id="310124">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="AstonJ" data-post="97" data-topic="60130">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>I did see a couple of comments to that effect and wondered if there was another reason. If there isn’t then I would be inclined to respectfully disagree</p>
</blockquote>
</aside>
<p>There’s no doubt one version is more explicit than the other as we would have an exclusive identifier for that purpose (it’s right on your face <img src="https://forum.elixirforum.com/images/emoji/apple/sweat_smile.png?v=15" title=":sweat_smile:" class="emoji" alt=":sweat_smile:" loading="lazy" width="20" height="20">), but I think you are disagreeing with the idea of needing it to be more explicit, right!? In that case, I think I still that being explicit about it would be the way to go just to avoid any possible speck of confusion like we discussed before (so, respectfully disagreeing with your disagreement haha <img src="https://forum.elixirforum.com/images/emoji/apple/blush.png?v=15" title=":blush:" class="emoji" alt=":blush:" loading="lazy" width="20" height="20">).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310124" 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/local-accumulators-for-cleaner-comprehensions/60130/101">Post #100</a>
	                </div>
	            </div>
              <div id="likers-container-310124" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310124"
                     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 #100"></div>
  </section>
</div>
    <div class="postbit" id="310126" data-post-id="310126">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<pre data-code-wrap="elixir"><code class="lang-elixir">Code.set_rebinding_scope(:foo, :lax) # Defaults to :strict

foo = 1

if do_it? do
  foo = 2
end
</code></pre>
<p>(?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310126" 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/local-accumulators-for-cleaner-comprehensions/60130/102">Post #101</a>
	                </div>
	            </div>
              <div id="likers-container-310126" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310126"
                     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 #101"></div>
  </section>
</div>
    <div class="postbit" id="310127" data-post-id="310127">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yep, I am disagreeing with the need/desire for it to be more explicit. When there is a need for it, couldn’t a prefix be used as per my examples?</p>
<p>I’m happy with whatever José and the Elixir team and everyone else decide on tho, but just wanted to voice my support for the original which I quite liked <img src="https://forum.elixirforum.com/images/emoji/apple/blush.png?v=15" title=":blush:" class="emoji" alt=":blush:" loading="lazy" width="20" height="20"> (edit: and after seeing José’s <a href="https://forum.elixirforum.com/t/local-accumulators-for-cleaner-comprehensions/60130/95" rel="nofollow">block option</a> and the reasons you and others have stated the block option is my favourite now).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="310127" 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/local-accumulators-for-cleaner-comprehensions/60130/103">Post #102</a>
	                </div>
	            </div>
              <div id="likers-container-310127" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="310127"
                     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 #102"></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/60130/load_more?page=11">Load more posts (145 remaining)</a>
</div></template></turbo-stream>