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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>but I still don’t know how to make a simple GET request</p>
</blockquote>
<p>reminds me of “Hitler reacts to functional programming” video (<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="283532" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-283532" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283532"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I use whatever the ElixirLS extension for VS Code uses… I don’t know what that is! I think it’s plain Dialyzer?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="283537" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-283537" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283537"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I forgot all about that… Purescript and its’ many backends. I’ve used purescript in the browser. I’m just learning phoenix (and that uses Elixir). Sticking to the defaults for now. But purescript for a library might be tempting… How is the performance overhead / what does the generated code look like?</p>
<p>That dynamic with the GET request sounds familliar… But it’s fun.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="283551" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-283551" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283551"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>How is the performance overhead</p>
</blockquote>
<p>Can’t tell because I haven’t written any “actual” code yet, the book I’m going through focuses on the theory first, but I’m assuming it to be about the same as what I would’ve written anyways because BEAM itself is quite optimized.</p>
<blockquote>
<p>what does the generated code look like?</p>
</blockquote>
<p>I don’t know Erlang so can’t comment much on this either. I can’t find the source now, but I remember reading somewhere that the author of Purerl decided to not prioritize readability of the output Erlang code. On the other hand, standard library code looks fairly comprehensible to me. Also it’s worth noting that exported functions are all curried, but also overloaded non-curried ones are generated too. Another fun thing is that it looks like that for some of the built-in functions, when calling them from Erlang/Elixir, you’d have to specify their type, e.g.:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">iex(1)&gt; :data_tuple@ps.fst {:tuple, 1, 2}
1
</code></pre>
<p>But I don’t remember having this when I was testing out creating/manipulating ETS tables from PS, from IEx.</p>
<blockquote>
<p>That dynamic with the GET request sounds familliar… But it’s fun.</p>
</blockquote>
<p>Yeah and FWIW in PS with Node as the backend it’s much easier because of the Affjax library and a couple examples. In Purerl it’s just Gun which is quite low-level itself and then on top of this there are literally zero docs. But the language itself is very expressive and overall just amazing, I’m enjoying it so far.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="283559" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-283559" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283559"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>With regards to currying, I’ve recently ran some simple tests in Elixir (for clarity – in Elixir alone). The extra overhead was ~25%, regardless of the number of arguments – quite tolerable for me.<br>
Here is some sample code from Data.List:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">%-file("/home/me/code/elixir/purescript_test/.spago/lists/v6.0.1/src/Data/List.purs", 829).
-spec transpose(data_list_types_List(data_list_types_List(any()))) -&gt; data_list_types_List(data_list_types_List(any())).
transpose(_@463) -&gt; case _@463 of
  ({ nil }) -&gt; { nil };
  ({ cons, { nil }, _@464 }) -&gt; (transpose(_@464));
  ({ cons, { cons, _@465, _@466 }, _@467 }) -&gt; { cons, { cons, _@465, (mapMaybe(fun head/1, _@467)) }, (transpose({ cons, _@466, (mapMaybe(fun tail/1, _@467)) })) }
end.
%-file("/home/me/code/elixir/purescript_test/.spago/lists/v6.0.1/src/Data/List.purs", 829).
-spec transpose() -&gt; fun((data_list_types_List(data_list_types_List(any()))) -&gt; data_list_types_List(data_list_types_List(any()))).
transpose() -&gt; fun (_@468) -&gt;
  (transpose(_@468))
end.
</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="283560" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-283560" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283560"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<ul>
<li>
<p>dialyzer through elixir-ls. It broke for me years ago on all my machines so i do not anymore. I should try again</p>
</li>
<li>
<p>yes i try to use typespecs anyway for people that do use it. And for myself. But ofc it would be far nicer if i still had typer integration in my editor… But that broke too.</p>
</li>
<li>
<p>no use of incremental. Never needed it plus too new</p>
</li>
<li>
<p>not tried eqwalizer. Would love to try gradient but it says on the tin not ready, so…</p>
</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="283662" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-283662" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283662"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="lpil" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lpil/120/17492_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  lpil
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Gleam</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Mostalive" data-post="15" data-topic="54904">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/m/d78d45/48.png" class="avatar"> Mostalive:</div>
<blockquote>
<p>But purescript for a library might be tempting… How is the performance overhead / what does the generated code look like?</p>
</blockquote>
</aside>
<p>Unfortunately there is a notable performance overhead with PureScript due to its use of unmonomorphised type classes, and the generated code is quite unfriendly if you’re trying to use it from Erlang or Elixir.<br>
Gleam is designed for this use case so doesn’t have these problems, but does have the same level of type safety.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="283692" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-283692" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283692"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ah shoot I should have included Gleam in the poll options. <img src="https://forum.elixirforum.com/images/emoji/apple/man_facepalming.png?v=15" title=":man_facepalming:" class="emoji" alt=":man_facepalming:" 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="283721" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-283721" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283721"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In case anyone uses <code>dialyxir</code> specifically, I asked Jeremy if he’d be willing to set up GitHub sponsors, which he did! So that’s an option now. <img src="https://forum.elixirforum.com/images/emoji/apple/smile.png?v=15" title=":smile:" class="emoji" alt=":smile:" loading="lazy" width="20" height="20"> <a href="https://github.com/jeremyjh/dialyxir/issues/488" class="inline-onebox" rel="noopener nofollow ugc">Support via GitHub Sponsors? · Issue #488 · jeremyjh/dialyxir · GitHub</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="283992" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-283992" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="283992"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey <a class="mention" href="/u/mostalive" rel="nofollow">@Mostalive</a><br>
To report back, I’ve now ran some of my code in Purerl, specifically an algorithm which is about iterating over an ETS table, doing some simple numerical comparisons and appending to the accumulator. Contrary to my expectations there is 0 overhead for the naive version of the algorithm and for a maxxed out version where the needs for ETS calls (they’re the bottleneck) are minimized Purerl seems to have more than a 2x advantage.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="284764" 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-do-you-prefer-to-use-for-type-checking-elixir-erlang-code-poll/54904/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-284764" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="284764"
                     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 #21"></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/54904/load_more?page=3">Load more posts (1 remaining)</a>
</div></template></turbo-stream>