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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ryanwinchester" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/120/9472_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ryanwinchester
                    <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">
								<aside class="quote no-group" data-username="crabonature" data-post="8" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/crabonature/48/7311_2.png" class="avatar"> crabonature:</div>
<blockquote>
<p><a class="mention" href="/u/spec" rel="nofollow">@spec</a> is a part of code not a part of documentation. It defines really important thing, types for function parameters and type of function return value, which helps in code readibility and code understanding.</p>
</blockquote>
</aside>
<p>It gives <strong><em>you</em></strong> information, for readability and understanding. It does not enforce types in the function, and as far as I know it does not change anything about the function when compiled and is not part of the function execution. That is my argument for considering it closer to documentation than code.</p>
<aside class="quote no-group" data-username="crabonature" data-post="8" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/crabonature/48/7311_2.png" class="avatar"> crabonature:</div>
<blockquote>
<p>In PHP types should be written in function clause</p>
</blockquote>
</aside>
<p>That’s only if you want to enforce the argument types.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65946" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-65946" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65946"
                     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="65948" data-post-id="65948">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/ryanwinchester" rel="nofollow">@ryanwinchester</a> This seam like a really good case for a PR there would make the styling more flexible<br>
it could be nice to be able to define it in the settings.</p>
<p>the only other option here is just not to use specs.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65948" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-65948" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65948"
                     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="65952" data-post-id="65952">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="ryanwinchester" data-post="12" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/48/9472_2.png" class="avatar"> ryanwinchester:</div>
<blockquote>
<p>It gives you information, for readability and understanding. It does not enforce types in the function […]</p>
</blockquote>
</aside>
<p>Well, considering you’re running VS Code, the extension you (should) use actually does continuous checking of type specs by way of dialyzer without any additional configuration, so with that in mind it’s not quite as deferred as you make it seem. Normally, I’d agree with your sentiment, but not with this specific extension.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65952" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-65952" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65952"
                     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="65955" data-post-id="65955">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ryanwinchester" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/120/9472_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ryanwinchester
                    <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">
								<aside class="quote no-group" data-username="gon782" data-post="15" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/eada6e/48.png" class="avatar"> gon782:</div>
<blockquote>
<p>Well, considering you’re running VS Code, the extension you (should) use actually does continuous checking of type specs by way of dialyzer without any additional configuration, so with that in mind it’s not quite as deferred as you make it seem. Normally, I’d agree with your sentiment, but not with this specific extension.</p>
</blockquote>
</aside>
<p>They are annotations for you to read,  and that tools can also use to help you. There are tools (and IDEs) that also use PHP docblocks to do the same thing.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65955" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-65955" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65955"
                     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="65956" data-post-id="65956">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="ryanwinchester" data-post="11" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/48/9472_2.png" class="avatar"> ryanwinchester:</div>
<blockquote>
<p>I’m trying to see if there are other people who <strong>feel</strong> the same way</p>
</blockquote>
</aside>
<p>That <em>feeling</em> may simply be informed by your previous <em>personal</em> experience.</p>
<p>For example someone who has worked primarily with dynamically typed languages may not attach a lot of importance to <em>explicitly</em> declared types.</p>
<blockquote>
<p>It does not enforce types in the function, and as far as I know it does not change anything about the function when compiled and is not part of the function execution.</p>
</blockquote>
<p>The specs are an input for <a href="http://learnyousomeerlang.com/dialyzer#success-typing" rel="noopener nofollow ugc">success typing</a> so they actually go beyond “mere” documentation. But viewing syntax highlighted code in an editor is entirely for the benefit of the <em>human reader</em> anyway.</p>
<p>I for one consider the <em>intended types</em> to be important and useful information regardless whether the actual code requires them or not - so I appreciate the additional emphasis even against the “real code” (the whole “thinking in types” thing).</p>
<p>But obviously that is a YMMV issue that can to be controlled via configuration of the viewing/editing tools.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65956" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-65956" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65956"
                     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="65958" data-post-id="65958">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="ryanwinchester" data-post="12" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/48/9472_2.png" class="avatar"> ryanwinchester:</div>
<blockquote>
<p>It does not enforce types in the function</p>
</blockquote>
</aside>
<p>Yep. It’s a pity it’s not enforcing types in compilation time.</p>
<aside class="quote no-group" data-username="ryanwinchester" data-post="12" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/48/9472_2.png" class="avatar"> ryanwinchester:</div>
<blockquote>
<p>It gives you information, for readability and understanding. It does not enforce types in the function, and as far as I know it does not change anything about the function when compiled and is not part of the function execution.</p>
</blockquote>
</aside>
<p>But in some way it can enforce some kind of type cheks when you are using dialyzer - as some kind of additional step before compilation.</p>
<aside class="quote no-group" data-username="ryanwinchester" data-post="12" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/48/9472_2.png" class="avatar"> ryanwinchester:</div>
<blockquote>
<p>That is my argument for considering it closer to documentation than code.</p>
</blockquote>
</aside>
<p>You know that you can move it closer to documentation by defining just empty function clause and place your <a class="mention" href="/u/spec" rel="nofollow">@spec</a> there with documentation anywhere in your file. It will not pollute your function definition with implementation.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">
# you got here just plain function
def some_function(some_arg) do
  #some implementation
end


#Many code here


@doc """
Quite good docs.
"""
@spec some_function(SomeType.t()) :: SomeOtherType.t()
def some_function(some_arg)
</code></pre>
<p>But that way you lost some code readability and it’s harder to understand what is going on in <code>some_function()</code> implementation. <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="65958" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-65958" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65958"
                     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="65959" data-post-id="65959">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="ryanwinchester" data-post="16" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/48/9472_2.png" class="avatar"> ryanwinchester:</div>
<blockquote>
<p>They are annotations for you to read,  and that tools can also use to help you.</p>
</blockquote>
</aside>
<p>… and the one you use happens to be one of the tools that does this by default, which means that this feeling you have of them not being important while developing, other than informing the programmer, is practically speaking misguided.</p>
<p>I’m still wondering exactly what it is that you hope to do about this, considering you’re basically shooting down any suggestion that you’ve been given. You have the tools to change this for yourself in order to make the type specs less pronounced. What’s this discussion actually about?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65959" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-65959" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65959"
                     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="65967" data-post-id="65967">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="ryanwinchester" data-post="12" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryanwinchester/48/9472_2.png" class="avatar"> ryanwinchester:</div>
<blockquote>
<p>That’s only if you want to enforce the argument types.</p>
</blockquote>
</aside>
<p>Uhh, why would you not want to?  Types put into comments is as good as no types at all as far as the compiler is concerned…  o.O</p>
<p>Do note, dialyzer is part of and comes with the BEAM/OTP.</p>
<aside class="quote no-group" data-username="crabonature" data-post="18" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/crabonature/48/7311_2.png" class="avatar"> crabonature:</div>
<blockquote>
<p>Yep. It’s a pity it’s not enforcing types in compilation time.</p>
</blockquote>
</aside>
<p>Add it as a git pre-commit hook or in your CI or as part of your compilation command itself.  <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="crabonature" data-post="18" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/crabonature/48/7311_2.png" class="avatar"> crabonature:</div>
<blockquote>
<p><a class="mention" href="/u/spec" rel="nofollow">@spec</a> some_function(SomeType.t()) :: SomeOtherType.t()<br>
def some_function(some_arg)</p>
</blockquote>
</aside>
<p>I would so very much love this instead:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">def some_function(some_arg :: SomeType.t()) :: SomeOtherType.t() do
  ...
end
</code></pre>
<p>Then have each head be properly combined and all finally as a BEAM spec.  <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="65967" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-65967" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65967"
                     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="65980" data-post-id="65980">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="OvermindDL1" data-post="20" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Add it as a git pre-commit hook or in your CI or as part of your compilation command itself.  <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p><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"> Yeah I got it in script additionally with credo --strict</p>
<aside class="quote no-group quote-modified" data-username="OvermindDL1" data-post="20" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>I would so very much love this instead:</p>
<p>def some_function(some_arg :: SomeType.t()) :: SomeOtherType.t() do<br>
…<br>
end</p>
</blockquote>
</aside>
<p>It reminds me statically typed languages with “looong” function heads. <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p>
<p>Personally I like more the way with annotation like in Haskell or Elixir, why?, because firstly I write <a class="mention" href="/u/spec" rel="nofollow">@spec</a> so I need only to name function and define its types (how it works - inputs and output). After that I have to think up the name for arguments. I got some separation from named things and types.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65980" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-65980" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65980"
                     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="65983" data-post-id="65983">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="crabonature" data-post="21" data-topic="11665">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/crabonature/48/7311_2.png" class="avatar"> crabonature:</div>
<blockquote>
<p>Personally I like more the way with annotation like in Haskell or Elixir, why?, because firstly I write <a class="mention" href="/u/spec" rel="nofollow">@spec</a> so I need only to name function and define its types (how it works - inputs and output). After that I have to think up the name for arguments. I got some separation from named things and types.</p>
</blockquote>
</aside>
<p>I prefer them together (if the type cannot be left out entirely due to it being properly inferred) so I can see what type and name something is both as I’m using it.  I don’t need to see just the type in a file as when I’m programming the IDE will show my the types of things as I type to call something anyway.  <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>
<p>I guess it’d be better if they were on their own lines if you had to have types if you did not have an IDE worth using, but thankfully that is not today’s world.  ^.^</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="65983" 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/does-anybody-else-feel-this-way-about-spec-visually-overpowering/11665/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-65983" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="65983"
                     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/11665/load_more?page=3">Load more posts (32 remaining)</a>
</div></template></turbo-stream>