core-typed

Typed Clojure, an optional type system for Clojure
2019-12-29T00:53:12.003100Z

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

Denis G 2019-12-29T01:06:32.004600Z

@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

2019-12-29T01:19:36.006200Z

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

2019-12-29T01:20:44.007500Z

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

2019-12-29T01:21:12.008100Z

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

2019-12-29T01:21:22.008400Z

and there's a prototype

Denis G 2019-12-29T01:25:31.009600Z

@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?

2019-12-29T02:28:20.013400Z

@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

2019-12-29T02:31:25.015100Z

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.

2019-12-29T02:34:39.017800Z

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)

2019-12-29T02:35:41.018400Z

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

❤️ 2