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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>All good! <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" 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="309712" 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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-309712" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309712"
                     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 #22"></div>
  </section>
</div>
    <div class="postbit" id="309713" data-post-id="309713">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>With the understanding that this is adding “local accumulators” instead of general mutability, <strong>I’m for this!</strong> I think I’m not alone in wishing I didn’t have to create ad hoc tuples in order to accumulate multiple values.</p>
<p>All I want to say is that I think a different syntax is crucial. I’m going to try to circumvent the moratorium on syntax by saying that I don’t care <em>what</em> it is so long as it’s <em>different</em>. If <code>x = x + 1</code> can change a value of <code>x</code> even outside it’s current scope, I’d like to know just by looking at it!</p>
<p>As others have said, F# has this. And they have a special syntax for reassigning mutable variables:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">let mutable x = 1
x &lt;- x + 1
</code></pre>
<p>If Elixir gains this power, I think you should have to opt into it with syntax. Otherwise, accidental <s>mutation</s> accumulation <em>will</em> happen.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="309713" 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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-309713" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309713"
                     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 #23"></div>
  </section>
</div>
    <div class="postbit" id="309716" data-post-id="309716">
  <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">
								<aside class="quote group-livebook_core_team" data-username="josevalim" data-post="19" data-topic="60093">
<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>Because we still compile to immutable code, there is no such example. This is purely a syntactical construct with no runtime changes.</p>
</blockquote>
</aside>
<p>Cool, that’s good then. Thank you for reminding me, and sorry about not addressing it in my comment.</p>
<p>In this case I believe you should aim for specialized syntax for this particular scenario and not introduce something that can and will be misinterpreted as general mutability (albeit with a limited scope). People come to Elixir already expecting stuff they are used to, so let’s not exacerbate this problem.</p>
<p>I like <a class="mention" href="/u/bit4bit" rel="nofollow">@bit4bit</a>’s idea the most: let’s have <code>for</code> option that provides special treatment of the variables listed in it (including nested <code>for</code> blocks). Whether it’s called <code>state</code> or <code>accumulators</code> or <code>mutable</code> or <code>iterables</code> (or <code>iterators</code>) remains to be discussed but IMO you should stick to this thing being a specialized syntax sugar to make using <code>for</code> more intuitive.</p>
<hr>
<p>EDIT: Though if you plan on this being used not only in <code>for</code> constructs then yes, your original idea seems the most reasonable, with some syntax amendments to avoid ambiguity.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="309716" 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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-309716" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309716"
                     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 #24"></div>
  </section>
</div>
    <div class="postbit" id="309718" data-post-id="309718">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The concept is interesting. It is cool to get ideas from experimental languages. However, I’m sceptical about adding this to Elixir <em>now</em>, since it won’t bring performance benefits. I already see a new credo rule for blocking local mutability, because this is readability only issue <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"> I almost didn’t work with mutable languages during the past 5 years, so I don’t even think in a way “I need mutability here, since it is more readable”. When I have an opportunity to write some JS code, I write it using functional style even if it takes more lines (usually it doesn’t). This is easier for me. Let’s think about the opposite - how will the code look like if mutability is overused? Will we have a new anti pattern page in docs?</p>
<p>I may be wrong, but introducing mutability opens another topic - arrays.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="309718" 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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-309718" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309718"
                     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 #25"></div>
  </section>
</div>
    <div class="postbit" id="309726" data-post-id="309726">
  <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>Thanks everyone for your inputs. I will close this proposal soon and resubmit it without mentioning mutability. There are two aspects to decide:</p>
<ol>
<li>
<p>What should we call them? Local state? Local accumulators?</p>
</li>
<li>
<p>We definitely need explicit syntax to declare them, such as the <code>mut</code> “keyword”, do we also need explicit syntax to reassign them? I am personally undecided. F# does use a different syntax, as <a class="mention" href="/u/billylanchantin" rel="nofollow">@billylanchantin</a> mentioned, but in F# it is literally mutable and it crosses the local scope, which is why you need a different syntax. One of the reasons to not have different syntax is: what if you write <code>{foo, bar} = some_fun()</code> where <code>foo</code> is a mutable (as in this proposal) but <code>bar</code> is not? Using a separate operator would not capture this nuance. Using a sigil such as <code>$foo</code> is an alternative but it has a much bigger footprint on the language. Anyway, we don’t need to decide this now, but it is food for thought.</p>
</li>
</ol>
<aside class="quote no-group" data-username="fuelen" data-post="26" data-topic="60093">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/fuelen/48/9870_2.png" class="avatar"> fuelen:</div>
<blockquote>
<p>because this is readability only issue <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>I’d say <em>only</em> here is a red herring, readability is extremely important and it should be enough reason. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" 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="309726" data-batch-url="/posts/batch_likers">
                        7
                      </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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-309726" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309726"
                     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 #26"></div>
  </section>
</div>
    <div class="postbit" id="309727" data-post-id="309727">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sabiwara" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sabiwara/120/18612_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sabiwara
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Elixir Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<ol>
<li>What should we call them? Local state? Local accumulators?</li>
</ol>
</blockquote>
<p>Since this is a different scoping rule for variables (we can already re-assign them, just not in a nested scope), how about something with “scope” like “local scoped variables”?</p>
<blockquote>
<ol start="2">
<li>We definitely need explicit syntax to declare them, do we also need explicit syntax to reassign them?</li>
</ol>
</blockquote>
<p>I wondered the same, especially from the point of view of metaprogramming or static analysis: would having a separate operator help distinguish at the AST level or shouldn’t this matter?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="309727" 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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-309727" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309727"
                     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 #27"></div>
  </section>
</div>
    <div class="postbit" id="309733" data-post-id="309733">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="benwilson512" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/benwilson512/120/1457_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  benwilson512
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Craft GraphQL APIs in Elixir with Absinthe</span>
			          </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="27" data-topic="60093">
<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>Using a sigil such as <code>$foo</code> is an alternative but it has a much bigger footprint on the language.</p>
</blockquote>
</aside>
<p>I rewrote your earlier example using <code>$foo</code> just to sort of see what it looked like and a few things caught my eye:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">let $section_counter = 0
let $lesson_counter = 0

for section &lt;- sections do
  if section["reset_lesson_position"] do
    $lesson_counter = 0
  end

  $section_counter = $section_counter + 1

  lessons =
    for lesson &lt;- section["lessons"] do
      $lesson_counter = $lesson_counter + 1
      Map.put(lesson, "position", $lesson_counter)
    end

  section
  |&gt; Map.put("lessons", lessons)
  |&gt; Map.put("position", $section_counter)
end
</code></pre>
<p>One very noticeable change is that it’s immediately more apparent where in the code the “local accumulators” are being accessed and modified, and I think this is sort of a plus. They operate differently from normal values but they are necessarily intermingled with regular values, and you can tell at a glance you’re dealing with one of these “special” variables without having to go trace up to where it was defined.</p>
<p>The other bit that became clear though is that I think we still need to keep the <code>let</code> or similar up front binding to establish where the scope for it lives.</p>
<p>I don’t have a strong opinion about <code>$</code> vs some other signifier. <code>$</code> does seem somewhat fitting though.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="309733" data-batch-url="/posts/batch_likers">
                        12
                      </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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-309733" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309733"
                     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 #28"></div>
  </section>
</div>
    <div class="postbit" id="309735" data-post-id="309735">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The reduce form of comprehensions allows carrying the necessary state, is it just a matter of education on the idioms?</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">{sections, _, _} =
  for section &lt;- sections, reduce: {[], 1, 1} do
    {acc, section_position, lesson_position} -&gt;
      lesson_position = if section["reset_lesson_position"], do: 1, else: lesson_position

      {lessons, lesson_position} =
        for lesson &lt;- section["lessons"], reduce: {[], lesson_position} do
          {acc, lesson_position} -&gt;
            lesson = Map.put(lesson, "position", lesson_position)
            {[lesson | acc], lesson_position + 1}
        end

      section = Map.put(section, "position", section_position)
      {[%{section | "lessons" =&gt; Enum.reverse(lessons) } | acc], section_position+1, lesson_position}
  end

sections = Enum.reverse(sections)
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="309735" 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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-309735" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309735"
                     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 #29"></div>
  </section>
</div>
    <div class="postbit" id="309737" data-post-id="309737">
  <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">
								<aside class="quote no-group" data-username="adw632" data-post="30" data-topic="60093">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/a/9d8465/48.png" class="avatar"> adw632:</div>
<blockquote>
<p>is it just a matter of education on the idioms?</p>
</blockquote>
</aside>
<p>This has been covered the first time such proposal was discussed. It’s not a skill issue, it’s a readability issue. I personally don’t mind <code>Enum.map_reduce</code> and using tuples that carry multiple accumulators but I’ll agree with the others that this can become unwieldy and hard to read, pretty quickly.</p>
<p>I’ve solved this for myself by devising a special accumulator struct – or simply use a map so the combined accumulator’s goals are more apparent (since, you know, a struct / map has named keys) – but I understand if people would just prefer some mutable[-like] syntax to make the whole thing easier to read and maybe it having less coding lines (debatable).</p>
<p>Another way I am keeping complexity at bay in these cases is to liberally use small private functions with descriptive (usually long) names.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="309737" data-batch-url="/posts/batch_likers">
                        5
                      </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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-309737" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309737"
                     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 #30"></div>
  </section>
</div>
    <div class="postbit" id="309738" data-post-id="309738">
  <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>This definitely looks better but I fear that somewhere in the near future we might <em>really</em> need the dollar sign for something else (say, the upcoming type checker) and it will be taken.</p>
<p>Though that makes me wonder… how many free special symbols Elixir still has at its disposal for future syntax additions? And I mean only those in the English alphabet and the QWERTY keyboards, not the entirety of Unicode.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="309738" 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/koka-inspired-local-mutable-variables-for-cleaner-comprehensions/60093/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-309738" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="309738"
                     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 #31"></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/60093/load_more?page=4">Load more posts (40 remaining)</a>
</div></template></turbo-stream>