Type strategy for Scheme Lassi Kortela (09 Nov 2022 22:54 UTC)
Re: Type strategy for Scheme Marc Nieper-Wißkirchen (10 Nov 2022 07:07 UTC)
Re: Type strategy for Scheme Marc Nieper-Wißkirchen (10 Nov 2022 07:42 UTC)
Re: Type strategy for Scheme Peter Bex (10 Nov 2022 08:05 UTC)
Re: Type strategy for Scheme Philip McGrath (10 Nov 2022 08:54 UTC)
Re: Type strategy for Scheme Lassi Kortela (10 Nov 2022 09:49 UTC)
Re: Type strategy for Scheme Lassi Kortela (10 Nov 2022 09:08 UTC)
Re: Type strategy for Scheme Marc Feeley (10 Nov 2022 23:34 UTC)
Re: Type strategy for Scheme Lassi Kortela (11 Nov 2022 19:17 UTC)
Re: Type strategy for Scheme Marc Feeley (11 Nov 2022 21:34 UTC)
Re: Type strategy for Scheme Lassi Kortela (12 Nov 2022 21:58 UTC)
Re: Type strategy for Scheme Marc Nieper-Wißkirchen (12 Nov 2022 22:52 UTC)
Re: Type strategy for Scheme Lassi Kortela (12 Nov 2022 23:14 UTC)
Re: Type strategy for Scheme Marc Nieper-Wißkirchen (13 Nov 2022 09:41 UTC)
Re: Type strategy for Scheme Lassi Kortela (13 Nov 2022 11:59 UTC)
Re: Type strategy for Scheme John Cowan (13 Nov 2022 19:52 UTC)
Re: Type strategy for Scheme Lassi Kortela (13 Nov 2022 20:22 UTC)
Re: Type strategy for Scheme Marc Nieper-Wißkirchen (13 Nov 2022 20:35 UTC)
Re: Type strategy for Scheme Lassi Kortela (13 Nov 2022 21:41 UTC)
Re: Type strategy for Scheme Marc Feeley (14 Nov 2022 00:03 UTC)
Re: Type strategy for Scheme Lassi Kortela (14 Nov 2022 09:36 UTC)
Re: Type strategy for Scheme Marc Feeley (14 Nov 2022 16:27 UTC)
Re: Type strategy for Scheme Lassi Kortela (14 Nov 2022 19:58 UTC)
Re: Type strategy for Scheme John Cowan (13 Nov 2022 20:40 UTC)
Re: Type strategy for Scheme Marc Nieper-Wißkirchen (13 Nov 2022 20:42 UTC)
Re: Type strategy for Scheme Panicz Maciej Godek (20 Nov 2022 21:59 UTC)
Re: Type strategy for Scheme Per Bothner (20 Nov 2022 22:58 UTC)

Re: Type strategy for Scheme Lassi Kortela 12 Nov 2022 23:14 UTC

> So are you looking for some ML dialect with parentheses? This is a
> serious question. I wonder how much such a Scheme would differ from
> ML.

Yes, I'd like to make one (unless someone beats me to it). Specifically,
I'm interested in something that can be translated easily into the
existing ML family languages, to make use of their toolchains. (There
are non-trivial differences in the type systems between ML family
members too, so it's not clear how comprehensively this can be done.)

I expect other people to want other things; schemers will never agree on
the right kind of type system (no pun intended). And implementations
like Kawa and IronScheme are probably constrained (in practice, if not
in theory) by their host platform.

Racket is years ahead of us on all this stuff, and Typed Racket should
probably be considered one valid type system for Scheme. But it's not
clear to me that their answer is optimal; there are tradeoffs. Matthew
Flatt implemented Plait (https://github.com/mflatt/plait), which is a ML
style design for teaching. That's a pretty obvious starting point.

I'm also trying to understand Koka's
(https://koka-lang.github.io/koka/doc/book.html) combined type and
effect system, which is noted for its uniformity and powers of
inference. I bet we'd learn a lot if we tried to write Koka signatures
for standard Scheme procedures.

One obvious question is whether macros should be statically or
dynamically typed. I don't find this very interesting, as I expect
either approach to work well. PreScheme uses dynamic Scheme for macros.