Introducing Coalton to lispers without a background in ML-like languages
gist.github.com
gist.github.com
For the uninitiated, it's a functional language of the Lisp family, with a type system somewhat close to Haskell's (or a ML descendant) that lives *embedded* in Common Lisp.
The problem to me seems to be just how inconvenient it is to use, exactly because it's embedded in another language!
Being able to use SLIME is of course, very nice, but having to wrap every expression you enter in `(coalton ...)` is a pain... I know they're working to make that more convenient, can't wait to try it again once that's done!
EDIT: intro to the language for those interested: https://coalton-lang.github.io/20211010-introducing-coalton/
(set-macro-character #\% (lambda (s c) `(coalton ,(read s))))
Then one can type %(f (g x)) (let [f (comp (fn [y] y)
(fn [x] x))]
(f 1))
can be inferred to return a value with type (Val 1) through serious amounts of symbolic execution.Does Coalton have similar capabilities? I would love to try out some kind of "typed Common Lisp", especially since I prefer Common Lisp over Clojure any day, but recent advancements in Typed Clojure have been raising my eyebrows, as they it can finally do things that were once considered infeasible (declaring types for higher-order functions and heterogeneous collections in a dynamic language).
On reflection, I guess there might be a niche for such a product, but it seems like a dang small one.