Fork me on GitHub

@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


@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).


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


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


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?


@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


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.


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)


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

❤️ 8