Dependent Haskell
I fundamentally disagree with the author&#x27;s thesis. I don&#x27;t think <i>dependent</i> types are the future of development, but instead I&#x27;d bet on <i>refined</i> types (or contracts - see my experiment [0], Liquid Haskell [1] by Ranjit Jhala, and languages Dafny [2] and F* [3] developed by Microsoft on top of Z3 SMT theorem prover [4]), where constraints are explicit yet simple, and proven automatically by an automated theorem prover.<p><pre><code>  lookup : (a : array) -&gt; (n : int if 0 &lt;= n &lt; length(a)) -&gt; whatever
</code></pre>
[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;tomprimozic&#x2F;type-systems&#x2F;tree&#x2F;master&#x2F;refined_types" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tomprimozic&#x2F;type-systems&#x2F;tree&#x2F;master&#x2F;refi...</a><p>[1] <a href="https:&#x2F;&#x2F;ucsd-progsys.github.io&#x2F;liquidhaskell-blog&#x2F;" rel="nofollow">https:&#x2F;&#x2F;ucsd-progsys.github.io&#x2F;liquidhaskell-blog&#x2F;</a><p>[2] <a href="https:&#x2F;&#x2F;rise4fun.com&#x2F;Dafny&#x2F;tutorial&#x2F;guide" rel="nofollow">https:&#x2F;&#x2F;rise4fun.com&#x2F;Dafny&#x2F;tutorial&#x2F;guide</a><p>[3] <a href="https:&#x2F;&#x2F;fstar-lang.org&#x2F;tutorial" rel="nofollow">https:&#x2F;&#x2F;fstar-lang.org&#x2F;tutorial</a> - see e.g. section 3 &quot;First proofs about functions on integers&quot;<p>[4] <a href="https:&#x2F;&#x2F;github.com&#x2F;Z3Prover&#x2F;z3" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Z3Prover&#x2F;z3</a>