<p>I wrote my first “real world” <a href="https://types.pl/tags/ATS" class="mention hashtag" rel="tag">#<span>ATS</span></a> application that does something for me. It was wild wrangling the errors, especially when dependent, refinement, & linear types were involved since I have no experience with them, but eventually it all actually managed to click.</p><p><a href="https://hub.darcs.net/toastal/svg-sprite-plucker" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">hub.darcs.net/toastal/svg-spri</span><span class="invisible">te-plucker</span></a></p><p>Honestly, not half bad to write. +1 for having a low-level ML.</p><p>If I could fix anything with the language it would be:</p><p>1. Don’t be limited to 128-char ASCII which could really open up operators to have less overloading + accessibility for non-English speakers<br />2. Unicode string support (being worked on)<br />3. Better type errors; the data is there, it’s just really noisy with with wrapped elements for type-level errors & showing the diff of mismatched types is often more useful than the whole info<br />4. Record update & punning syntax</p><p>& language ecosystem, it would be:</p><p>1. a glossary of the keywords to help understand them at a high level<br />2. better FFI explanation since one of the powers is very close C interop<br />3. better explanation of how the build system works *outside* of `patscc`<br />3. tree-sitter parser<br />4. language server protocol LSP</p>