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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>My main concern is when it would be safe to add to libraries for older version support.</p>
<p>I would love to see a couple of versions of Elixir released that know how to <em>ignore</em> any planned new types syntax before the syntax is enabled so that it is easier to offer older version support while taking advantage of new features like typing.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297520" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/67">Post #66</a>
	                </div>
	            </div>
              <div id="likers-container-297520" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297520"
                     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 #66"></div>
  </section>
</div>
    <div class="postbit" id="297528" data-post-id="297528">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<ul>
<li><strong>Explosion of complexity.</strong> I don’t feel comfortable working with a language that I don’t fully comprehend. Typescript <a href="https://type-level-typescript.com/" rel="noopener nofollow ugc">crossed that line for me</a>. Can the types be kept simple yet still useful? Is there going to be a push for ever-growing list of features for the type system? The most complex code occurs when two somewhat orthogonal features interact with each other (I have bad experiences from C++). How is the type system going to work with macros?</li>
<li><strong>Style mismatch.</strong> Having to deal with both the dynamic and typed styles of coding in a single codebase. For example, are we going to have <code>Result | Error</code> vs <code>{:ok, result} | {:error, error}</code> issues?</li>
<li><strong>Degraded code readability.</strong> I don’t want to have to learn another language on top of Elixir. Typespecs feel foreign to me (e.g. <code>::</code>) and I always need to have the docs open to declare a behaviour. <a href="https://docs.python.org/3/library/typing.html" rel="noopener nofollow ugc">Mixing types with other code</a> negatively impacts the readability.mistake.</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297528" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/68">Post #67</a>
	                </div>
	            </div>
              <div id="likers-container-297528" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297528"
                     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 #67"></div>
  </section>
</div>
    <div class="postbit" id="297532" data-post-id="297532">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>First of all - thanks a bunch for involving the community so early on in this journey that hopefully leads to an awesome type system <a class="mention" href="/u/josevalim" rel="nofollow">@josevalim</a>! I really enjoyed reading your early discoveries on what the type system might look like. Here are my top three worries:</p>
<ol>
<li>
<p><strong>An obtuse syntax which makes Elixir type definitions a lot more confusing to read and write.</strong> Coming to Elixir from other languages about a year ago one of the hardest things to grokk was actually how to write idiomatic function signatures. Elixir has pattern matching, guard clauses, and <code>@specs</code>, that all hint at what the function params are expected to be. Adding a fourth thing that’s at least semi-related could potentially make function sigs even more complex.</p>
</li>
<li>
<p><strong>Language server / IDE integration not being robust enough.</strong> Right now the Elixir LS semi-regularly errors out for me and needs to be restarted (when using VSCode). I’ve often been in situations where the LS has stopped working, and Dialyzer therefore gave up on highlighting issues (or even worse, highlighting issues that aren’t there any more). If a type system is to be helpful for developer feedback I think these integrations need to be solid as well.</p>
</li>
<li>
<p><strong>Hard to understand error messages from the type system.</strong> I dread reading whatever Dialyzer spits out, and often end up just trying to figure out what the issue is myself instead.</p>
</li>
</ol>
<p>Looking forward to watching the ElixirConf US talk! <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="297532" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/69">Post #68</a>
	                </div>
	            </div>
              <div id="likers-container-297532" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297532"
                     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 #68"></div>
  </section>
</div>
    <div class="postbit" id="297543" data-post-id="297543">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I am also concerned about the <code>$</code> syntax. Most elixir code verbally describes what it’s doing, and creating something that would, unlike the <code>&amp;</code> syntax, be sprinkled throughout almost all files that isn’t self-describing feels wrong. I personally would prefer a new keyword or something in combination with the <code>$</code> syntax that is self descriptive, but there are challenges with doing that too, right?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297543" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/70">Post #69</a>
	                </div>
	            </div>
              <div id="likers-container-297543" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297543"
                     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 #69"></div>
  </section>
</div>
    <div class="postbit" id="297545" data-post-id="297545">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h2><a name="p-297545-education-1" class="anchor" href="#p-297545-education-1" aria-label="Heading link" rel="nofollow"></a>Education</h2>
<p>From my experience as a learner and a teacher any boilerplate adds complexity to understanding. People wouldn’t be able to make simple programs fast (in iex) while they are learning and will give up.</p>
<h2><a name="p-297545-simplicity-2" class="anchor" href="#p-297545-simplicity-2" aria-label="Heading link" rel="nofollow"></a>Simplicity</h2>
<p>I came to Elixir to learn about concurrency, faced easy to read syntax and this gave me ability to learn more about functional like programming and work with processes (actors, real OOP). And oh my processing Is not something simple to get used to even with such concise syntax. I am afraid that language will get complicated and will start to compete with mainstream languages like C++, Java. And I’ll just move to Erlang because I don’t understand the point of mainstream languages. I droped Python because it’s a divided language now: there are several ways of types, several ways of concurrency (standart library doesn’t work with concurrent frameworks). And I feel more like Defensive Programming aproach with types and it’s not an easy way for programming.</p>
<h2><a name="p-297545-repl-3" class="anchor" href="#p-297545-repl-3" aria-label="Heading link" rel="nofollow"></a>REPL</h2>
<p>Are we getting rid from REPL?<br>
For me type system is something more about compilation time errors. I’d like to let it crash during runtime.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297545" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/71">Post #70</a>
	                </div>
	            </div>
              <div id="likers-container-297545" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297545"
                     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 #70"></div>
  </section>
</div>
    <div class="postbit" id="297558" data-post-id="297558">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<ol>
<li>
<p><strong>Typecasting</strong>: I want to somehow type data structures, and ensure that either I have something like this in my hands or fail hard and fast in my code. Like, interacting with external APIs where I cast/transform received data into something more usable first thing in my code - the ability to hard cast eliminates <em>a lot</em> of “if” branches later on in the code. My fear: we get types without the casting, like in typescript. I want: in an ideal world something like <code>serde</code> in rust, where I can encode/decode stuff right From/Into (json/xml/…). A huge percentage of company business code usually is concerned with casting data shapes back-and-forth, so for me personally this would be a killer feature.</p>
</li>
<li>
<p><strong>duplication</strong>: the new types should automatically generate dialyzer specs or vice versa somehow - <em>additional</em> markup ontop of functions would be bad.</p>
</li>
<li>
<p><strong>compilation times</strong>: this already is noticeably bad when there is a big phoenix monolith with lots of code and dependencies and then ontop of it dialyzer runs from scratch for a significant amount of time. I see why it is that way and understand the reasons, but at least it shouldn’t get much slower.</p>
</li>
</ol> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297558" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/72">Post #71</a>
	                </div>
	            </div>
              <div id="likers-container-297558" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297558"
                     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 #71"></div>
  </section>
</div>
    <div class="postbit" id="297560" data-post-id="297560">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yesterday evening I finally watched it as well as your 2023 talk. I agree with most of the things you said in defense of a typing system (in Elixir). Naturally, I also agree with all the cons.</p>
<p>As for how this typing system will look like the only thing I understood was it would be used for interfaces (functions, callbacks) and structures. Now, since I myself already use typespecs for all non-trivial functions, I could get used to it but would still prefer it be optional, just like the typespecs, especially if the ambitions is to type variables within the function body one day. (I would, however appreciate if all <em>your</em> code in LV and other libs/frameworks had typespecs :).</p>
<p>Re the fear of a community split:</p>
<p>In my view there’s no room for fear that an optional typing system would “split the community” for as long as this optionality is implemented the same way the typespec’s is i.e. relying on typing where one sees fit. There where it’s not used the compiler should simply assume (correctly) that the proofs and restrictions might not be desired or that the user finds it unnecessarily litter the code. If a typed function invokes a non-typed function, by default the user will get a warning that can otherwise be suppressed on a case by case, module by module or even the application as whole basis. And that’s it. The time and the market will then judge best where and where to use it or not to use it while no “legacy” code would be ever jeopardized.</p>
<p>My 2c</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297560" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/73">Post #72</a>
	                </div>
	            </div>
              <div id="likers-container-297560" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297560"
                     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 #72"></div>
  </section>
</div>
    <div class="postbit" id="297569" data-post-id="297569">
  <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>I worry that the type system may:</p>
<ol>
<li>result in idioms that actually harm code evolution (catch alls/pokemons exhastiveness checks will hide future issues)</li>
<li>destroy “coding the happy path” and “let it crash”  semantics because the type system creates a tension that promotes the use of nanny coding standards / catchalls which may be well intentioned but ultimately harmful.</li>
<li>not deliver much value vs the significant effort typing “types” to “keep the compiler happy”</li>
<li>reduce productivity in the wrong place vs testing</li>
<li>reduce readability, although I think “doctypes” would be a nice way to document possible function return values.</li>
<li>be at a layer too high. If it’s not in the core of the beam then we lose the potential for exploiting it for optimisation and also may have an impedance mismatch “all bets are off” when using Erlang libraries that don’t use the type system.</li>
<li>distract the community for a very long time.</li>
<li>end up with multiple rail gauges in libraries, and it is likely to be polarising to the point some will embrace it and some will despise it.</li>
<li>lead to similar outcomes like  the early days of C programming before function prototypes, and we would need to declare the function  twice, one in K&amp;R style and another using the hipster ANSI C style with prototypes which meant using macros to harmonise the code so it could still compile with non ANSI C compilers.</li>
<li>create a false sense of security. Testing is good, value matching and let it crash is excellent. This already provides more value further than types.</li>
</ol> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297569" data-batch-url="/posts/batch_likers">
                        13
                      </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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/74">Post #73</a>
	                </div>
	            </div>
              <div id="likers-container-297569" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297569"
                     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 #73"></div>
  </section>
</div>
    <div class="postbit" id="297584" data-post-id="297584">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I worry that the type system will make the macro system more complicated or less powerful. Also, I worry that if Elixir does not have some type system it can never be adopted more broadly.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297584" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/75">Post #74</a>
	                </div>
	            </div>
              <div id="likers-container-297584" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297584"
                     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 #74"></div>
  </section>
</div>
    <div class="postbit" id="297618" data-post-id="297618">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>My concern: I hope types do not lead to a break in language continuity.  The leap from Python2 to Python3 was IMO disruptive.</p>
<p>I hope types are introduced over a very long time period, in a series of small incremental improvements, with time for the community to absorb each change.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="297618" 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/what-are-your-concerns-about-a-future-type-system-for-elixir/57525/76">Post #75</a>
	                </div>
	            </div>
              <div id="likers-container-297618" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="297618"
                     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 #75"></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/57525/load_more?page=8">Load more posts (17 remaining)</a>
</div></template></turbo-stream>