@markm made the case to me that rather than reimplementing all the stuff that the Agoric folks are doing in scheme, that I should make some scheme-like syntax that transforms into a valid Jessie program. Ok, let’s think about it. (I’m not committing quite yet!)
I was calling this “Jesscheme” but that’s really a mouthful. Since it would have more elegant syntax, maybe a shorter name is acceptable, so I’ll call it “Jess” for now.
- What to do about symbols? Most lispy hackers will expect them, and that two symbols that “look” the same are the same according to
eq?shared uniqueness, and there is no global registry for them (which needs a weakmap). It’s not obvious that there would be a place to coordinate them in Jessie.
- Mutable by default stuff everywhere still seems to exist in Jessie? It would be nice if we had some clojure-like immutable primitives, but I suppose these could be added later.
- Macros are not actually too high of priority initially, but eventually will be wanted (it’s part of the appeal of the syntax). I know @markm pointed me at his ideas for doubly hygenic macros.
- However, how on earth are macros exported from a module? What about between a Jess -> Jessie -> Jess passing of modules?
- How should hashmaps be represented? Probably even though a major diversion from scheme syntax, having special curly syntax is worth it.
Just some thoughts for now.