This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-01-13
Channels
- # announcements (13)
- # beginners (52)
- # bitcoin (2)
- # calva (2)
- # cider (7)
- # clara (1)
- # clj-commons (11)
- # clj-kondo (6)
- # cljdoc (14)
- # clojure (68)
- # clojure-belgium (1)
- # clojure-denmark (6)
- # clojure-europe (57)
- # clojure-nl (2)
- # clojure-norway (10)
- # clojure-uk (3)
- # clojurescript (7)
- # code-reviews (17)
- # conjure (1)
- # cursive (5)
- # dev-tooling (11)
- # emacs (9)
- # fulcro (12)
- # hugsql (20)
- # introduce-yourself (6)
- # joyride (2)
- # leiningen (1)
- # lsp (61)
- # malli (30)
- # missionary (11)
- # nbb (6)
- # off-topic (26)
- # portal (5)
- # practicalli (5)
- # re-frame (8)
- # releases (8)
- # sci (21)
- # shadow-cljs (3)
- # sql (17)
- # squint (1)
- # xtdb (3)
Not much of announcement, but I think I mostly finished up this implementation of Algorithm W for Hindley-Milner type inference https://github.com/moea/types/blob/main/src/types/w.clj. I think it's much easier to follow (and much shorter) than the other implementations I've seen. I'll turn it into a blog post once I've added some pretty printing and tested it a bit more.
This is so cool.
@U055XFK8V seems like something you'd be interested in
Sure. It takes symbolic expressions representing primitive constructs in the lambda calculus + polymorphic let
(or "Hindley-Milner" for short) and infers the types of them using the algorithm outlined in this paper https://www.cs.uu.nl/research/techreps/repo/CS-2002/2002-031.pdf — Hindley-Milner is the same type system used by the ML family, a subset of the one used by Haskell, etc. — and basically the foundation of all type inference algorithms, if not most type systems
I had an interesting thought, not sure if this is possible, but could you use this sort of thing to add some static typing to clojure via clj-kondo?
specifically to enhance how it is used with malli https://github.com/metosin/malli#clj-kondo
Cool stuff! I have been working towards something along the lines of what @U051V5LLP proposes for a while, but there are tricky parts associated with Clojure's data structures being more expressive than typed collections. https://github.com/erp12/schema-inference
https://github.com/clojure/tools.build v0.9.1 27ff8a4 • uber - https://clojure.atlassian.net/browse/TBUILD-35 Fix error on exploding jar with / entry • uber - https://clojure.atlassian.net/browse/TBUILD-30 Apply exclusions and conflict handlers for local and git libs