Oh I'm not sure what I'm going to do next. I may well stick with wart. It's just that being yoked to a lisp-2 is starting to chafe.
Part of the reason I originally moved to common lisp was to leave arc's atomic behind so that we could have multiple threads. But a platform with threads doesn't directly enable multiple arc servers. You still need some effort to make your server stateless and to use a common storage. That's the part of an MVC web framework that's increasingly starting to make sense to me.
I think I want a persisted macro for declaring data structures so that mutations to them will translate to requests to a riak server. (wiki.basho.com) Outsource storage to erlang which does it well.
Anyway, to summarize, wart hasn't solve the problems I hoped it would, and I underestimated the cognitive overhead of a lisp-2 for ssyntax.
"I think I want a persisted macro for declaring data structures so that mutations to them will translate to requests to a riak server. (wiki.basho.com) Outsource storage to erlang which does it well."
Wait wait wait. Are you perhaps desiring my message passing system? :) That should allow you to declare a data type that does something special when changed.
Basically, it'd require changing things like (table) and (cons) so they return annotated functions, and then changing the built-ins (like keys, vals, car, etc.) to use the annotated functions. That's what that post is about: describing the core functions (keys, car, etc.) in Arc itself.
Oh, yeah, and change apply/eval so when they see something with type 'table or 'cons, they use the annotated functions too. I should be able to add this to py-arc without too much trouble.