That was a fun read That was a fun read… helps that I’m a bit familiar with Gauntlet. What follows are likely naive and uninformed thoughts on the code, seeing as I don’t really know Lisp, and don’t really understand your research! So, taken with that caveat: I enjoyed the cultural references. Had not heard of MZB, but wikipedia article explains. Think I found a Frank Zappa reference. Reminds me of writing programs on a BBC Micro at age 9, and leaving messages for my future self to find at age 14. As I recall, some of them still made sense. The code’s “2 years later, WTF does this actually do?” comments are of course a universal in the experience of making software over the course of months and years! Also, strange how often the basic rules of arithmetic apparently break down… happens all the time. Although the specific kludges are different, the warts in the code seem quite familiar in contemporary code that’s dealing with UI concerns on a low level. (For example, displaying text at the level of choosing the size and position of glyphs.) It’s like there’s a form or pattern of some kind that arises when trying to make a rationally designed UI system do something that’s within what it’s ostensibly designed for, but just slightly skewed to what it’s become adapted for. Like a hydraulic machine leaving a specific pattern of moisture tracks on the concrete beneath it, caused by the leaks that occur when you try to run it in a way that wasn’t 100% intended. The arbitration macrology reminds me of some code I’m familiar with that tries to figure out what touch gesture someone has made on a complex UI, where there are various claims to different gestures for the different contexts of the application. Definition of pi is curious. I get why to define it with single precision, but why Why “3.141592685” and not “3.141592654”. I’m sure level of precision at the last two decimal places makes no practical difference… so is it just to screw with readers? A form of good humoured gas-lighting? “Wait a minute… I’m sure the eighth decimal of pi is 5 not 8. Or am I?” re pyramid.lisp… I’d never considered whether condoms could be considered monadic. Need to think about this a bit. Also, getting “telepathic” knowledge of the distance is indeed a cheat :-) I’m surprised not to see an implementation of a kind of short term memory, to manage things like “I’m looking for a doorway. Oh there’s one behind me! Ah, but in my goldfish mind, I recall I just passed through that, so dampen its relevance”. I see there is a note on using latching to provide hysteresis, to do some of the things I’d expect short term memory to provide. The implementation of this in code makes me think it’s more like a digger wasp than a lab rat. Or maybe Sonja is like a digger wasp, and the Advisor has a bit more context going on. I didn’t see code for the Advisor — or does advice come from outside of the program, like from a human? Thanks for sharing the code, enjoyed the read!