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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dimitarvp" data-post="11" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Dependencies can be pinned to a version that doesn’t break.</p>
</blockquote>
</aside>
<p>With the time, they’re going to lost compatibility with the dependencies you need to have up-to-date.</p>
<aside class="quote no-group" data-username="dimitarvp" data-post="11" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Security for small dependencies is a non-issue.</p>
</blockquote>
</aside>
<p>Wouldn’t be sure about that, remember <a href="https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/" rel="noopener nofollow ugc">this case</a>? Each package can be altered in a malicious way, no matter if big or small.</p>
<p>I agree that professional setting requires some tradeoffs, but I believe using Ecto just to write schema instead of <span class="mention">@type</span> and defstruct is not one of them <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="170009" 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/allow-specifying-the-type-when-defining-structs/30397/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-170009" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170009"
                     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 #11"></div>
  </section>
</div>
    <div class="postbit" id="170016" data-post-id="170016">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Having as few dependencies as possible is a valid requirement and also the philosophy of Erlang and Elixir as far as I know: “A little copying is better than a little dependency.”</p>
<p>I don’t think that there is any point you can make to invalidate this reasonable demand. Including Ecto for just the type checking seems overkill.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="170016" 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/allow-specifying-the-type-when-defining-structs/30397/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-170016" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170016"
                     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="170021" data-post-id="170021">
  <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-Membrane-Core-Team" data-username="mat-hek" data-post="12" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mat-hek/48/38168_2.png" class="avatar"> mat-hek:</div>
<blockquote>
<p>I agree that professional setting requires some tradeoffs, but I believe using Ecto just to write schema instead of <span class="mention">@type</span> and defstruct is not one of them <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>On that I agree. I was saying that the general sentiment for it is rather overblown.</p>
<aside class="quote no-group" data-username="JeyHey" data-post="13" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/j/ce73a5/48.png" class="avatar"> JeyHey:</div>
<blockquote>
<p>Having as few dependencies as possible is a valid requirement and also the philosophy of Erlang and Elixir as far as I know: “A little copying is better than a little dependency.”</p>
</blockquote>
</aside>
<p>True, and I do that in hobby projects all the time. Although to be fair to both sides, having several good unit tests that make sure that your dependencies together with your code continue to do what you expect them to do has saved my neck from breaking changes many times. So choosing between little copy-paste and including a dependency in your hobby project is honestly a toss up and is mostly a personal preference.</p>
<aside class="quote no-group" data-username="JeyHey" data-post="13" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/j/ce73a5/48.png" class="avatar"> JeyHey:</div>
<blockquote>
<p>I don’t think that there is any point you can make to invalidate this reasonable demand.</p>
</blockquote>
</aside>
<p>I can and I did: it saves time and if you take a little special care (one-off effort to add several automatic tests) then you will be quite safe.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="170021" 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/allow-specifying-the-type-when-defining-structs/30397/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-170021" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170021"
                     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="170022" data-post-id="170022">
  <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-Membrane-Core-Team" data-username="mat-hek" data-post="12" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mat-hek/48/38168_2.png" class="avatar"> mat-hek:</div>
<blockquote>
<p>Wouldn’t be sure about that, remember <a href="https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/" rel="noopener nofollow ugc">this case </a>?</p>
</blockquote>
</aside>
<p>This is not at all related to the topic at hand. What you linked to is a problem of how an external entity is governing their code hosting and has zero bearing on “is it safe to include literally 10-15 lines of JS in my project via a dependency?” Yes, yes it is. The problem was the hosting.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="170022" 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/allow-specifying-the-type-when-defining-structs/30397/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-170022" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170022"
                     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="170037" data-post-id="170037">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="smolcatgirl" data-post="1" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/s/c5a1d2/48.png" class="avatar"> smolcatgirl:</div>
<blockquote>
<p>So I am not talking about Ecto schemas but regular structs with type checking.</p>
</blockquote>
</aside>
<p>What specific operations would this provide? “Type checking” can mean a lot of things in Elixir:</p>
<ul>
<li>
<p>compile-time success-type checking, as provided by Dialyzer</p>
</li>
<li>
<p>runtime pattern matching and guards, like:</p>
</li>
</ul>
<pre data-code-wrap="elixir"><code class="lang-elixir">def some_function_that_wants_a_list(x) when is_list(x) do
</code></pre>
<ul>
<li>field enforcement on structs; a mostly compile-time guarantee that specified keys will be in a map tagged with the <code>__struct__</code> key. For instance, this will fail if the target struct doesn’t have a <code>foo</code> key already: <code>%{target | foo: "bar"}</code></li>
</ul>
<p><code>typed_struct</code> (recommended in this thread) is ultimately just a shorthand for writing a Dialyzer typespec and <code>defstruct</code>; the compiler ultimately sees the same code.</p>
<p>To return to my original question, what kind of “type checking” behavior are you looking for? For concreteness, let’s imagine we have a “typed struct” called <code>Blog</code> that expects its <code>tags</code> field to be an array of strings. What should the following do:</p>
<ul>
<li><code>%User{tags: 1234}</code> - wrong type</li>
<li><code>%User{tags: ["a", 1234])</code> - mixed types in a field</li>
<li><code>%{some_user | tags: 1234}</code> - update with wrong type</li>
<li><code>%{some_user | tags: ["a", 1234]}</code> - update with mixed types</li>
<li><code>%{some_user | tags: value_that_might_be_a_list_at_runtime}</code> - compiler has no information</li>
<li><code>Map.put(some_user, :tags, 1234)</code> - structs are maps too</li>
</ul>
<p>Dialyzer will catch some of these, when it has enough information to prove things are the wrong types - but it’s going to struggle with things like the <code>value_that_might_be_a_list_at_runtime</code> case and give up ENTIRELY on the <code>Map.put</code> one.</p>
<p>Communicating typing failures out of these constructs is going to be difficult - they don’t normally “fail”, so the only available option is to crash the process.</p>
<p>Also note that all of these constructs are used extensively in Elixir’s implementation - so any overhead added will be <em>significantly</em> amplified. That’s one reason to prefer an opt-in library like <code>Ecto.Schema</code>, which layers the additional functionality onto bare structs instead of adding more complexity directly to them.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="170037" 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/allow-specifying-the-type-when-defining-structs/30397/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-170037" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170037"
                     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="170039" data-post-id="170039">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve using this library to do data validation, it’s similar to what you can do with Ecto but the plus for me is that also have the option to generate valid data.</p>
<p><a href="https://github.com/keathley/norm" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/keathley/norm</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="170039" 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/allow-specifying-the-type-when-defining-structs/30397/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-170039" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170039"
                     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="170700" data-post-id="170700">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It’s totally a valid objection, you should select your dependencies carefully. Otherwise you end up in a ridiculous dependency hell.</p>
<p>This is one of the reasons the js ecosystem is such a tire fire, node_modules full of thousands of tiny modules is provably slow and a security risk as you cannot possibly audit them all.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="170700" 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/allow-specifying-the-type-when-defining-structs/30397/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-170700" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170700"
                     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="170702" data-post-id="170702">
  <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="JonRowe" data-post="18" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jonrowe/48/39163_2.png" class="avatar"> JonRowe:</div>
<blockquote>
<p>It’s totally a valid objection, you should select your dependencies carefully. Otherwise you end up in a ridiculous dependency hell.</p>
</blockquote>
</aside>
<p>I didn’t argue against that.</p>
<aside class="quote no-group" data-username="JonRowe" data-post="18" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jonrowe/48/39163_2.png" class="avatar"> JonRowe:</div>
<blockquote>
<p>This is one of the reasons the js ecosystem is such a tire fire, node_modules full of thousands of tiny modules is provably slow and a security risk as you cannot possibly audit them all.</p>
</blockquote>
</aside>
<p>And I already agreed with that. <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>
<hr>
<p>Not sure why you are replying to me in particular since I made the distinction that the <code>left-pad</code> Node.JS fiasco was a problem due to how the hosting company handled it – the dependency itself was quite safe to include.</p>
<p>Whether or not your workplace is going to allow you to be that cautious with dependencies is a separate topic entirely.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="170702" 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/allow-specifying-the-type-when-defining-structs/30397/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-170702" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170702"
                     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="170703" data-post-id="170703">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m replying to you because of:</p>
<blockquote>
<p>This has been an irrelevant problem ever since the Apple IIc computers stopped being mainstream. What are you worried about? A several dozen of kilobytes extra on your drive?</p>
<p>Doesn’t seem like a valid objection.</p>
</blockquote>
<p>I wished to point out its a valid objection.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="170703" 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/allow-specifying-the-type-when-defining-structs/30397/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-170703" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170703"
                     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="170704" data-post-id="170704">
  <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 quote-modified" data-username="JonRowe" data-post="20" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jonrowe/48/39163_2.png" class="avatar"> JonRowe:</div>
<blockquote>
<p>I’m replying to you because you made this ridiculous statement</p>
</blockquote>
</aside>
<p>Some courtesy, please? Disagreeing doesn’t warrant usage of “ridiculous”.</p>
<aside class="quote no-group quote-modified" data-username="JonRowe" data-post="20" data-topic="30397">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jonrowe/48/39163_2.png" class="avatar"> JonRowe:</div>
<blockquote>
<p>Seems to me other people pointed out your errors, but I’m pointing out the flaws aside, its totally a valid objection.</p>
</blockquote>
</aside>
<p>I addressed their replies already. Repeating “it’s totally a valid objection” doesn’t make anything true. Please be respectful.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="170704" 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/allow-specifying-the-type-when-defining-structs/30397/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-170704" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="170704"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

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