Hello! So a while ago, David Thompson submitted (ice-9 json) to Guile proper. A few changes were requested, so it hadn't made it in. In the meanwhile I began using it for a number of projects. I also added some modifications and extensions: #nil became 'null for the representation of null values, the representation got a bit easier to read for deeply nested lists-of-dicts-of-lists-of-dicts (moved from '(@ (key . val)) to '(@ (key val)) after some discussion with David Thompson), I added a pretty printer, and I also added fash support, snarfing fash.scm from Andy Wingo (I had a number of cases where I had json documents with a *lot* of key / value pairs and I was operating on them, and being able to read/write from a constant time datastructure as an option was needed).
I released this as an independed library, which is even now packaged in Guix as guile-sjson. However, I wonder if we should package this in Guile proper. There is still one issue to resolve iirc, I should add more specific exception names. The biggest problem to me seems that we would also want to include Wingo's fash.scm in Guile proper. Personally, I think this would be a big win: highly performant immutable hashmaps are desirable (and though we have vhashes, setting an existing value keeps the old value, and are not as fast as fashes in my experience). So: - Are Guile's developers open to having an (ice-9 fash) module? - And should I submit (ice-9 json), with my changes? Thanks! - Chris