Fork me on GitHub
#core-typed
<
2019-12-29
>
ambrosebs00:12:12

@denisgrebennicov in a word, dormant. I haven't worked on it since my phd thesis in June.

Denis G01:12:32

@ambrosebs congrats on graduation 🙂 how does it compare to racket-typed though. Is it more-or-less fork? I’m not really familiar with racket-typed, yet I’ve seen the docs and it looks really promising. How clojured.typed compare to racket-typed and what are/were difficulties with implementing it for clojure

ambrosebs01:12:36

@denisgrebennicov thanks! it's a direct port of typed racket circa 2012. interesting parts to core.typed from there are heterogenous maps, multimethods, various extensions to occurrence typing, Java interop (pre-generics).

ambrosebs01:12:44

so far the local type inference has been inadequate to infer many clojure idioms without lots of annoying annotations. eg., any sequence function usage requires local annotations for lambdas, transducers

ambrosebs01:12:12

the last section of my thesis describes some ideas to fix this

ambrosebs01:12:22

and there's a prototype

Denis G01:12:31

@ambrosebs and what do you think of spec? how does it compares to core.typed (I know runtime/compile time) but when would one prefer one over the other?

ambrosebs02:12:20

@denisgrebennicov hard to compare the two. the design goals are totally different. if I had to summarize, core.typed is about soundness above all else, spec optimizes for user experience

ambrosebs02:12:25

if you can't be precise enough in spec or it's too expensive to check invariants at runtime, then core.typed might be useful.

ambrosebs02:12:39

afaik spec is really popular and no-one uses core.typed. for me, I haven't found either to be useful enough in my day-to-day programming to justify the overhead of using them in practice. for different reasons: spec because it's not precise enough, core.typed because it slows dev down (and types are often frustrating to work with)

ambrosebs02:12:41

I'm optimistic there's lots of room to grow from both systems.

❤️ 2