On Tue, Feb 9, 2021 at 4:28 PM Olivier Dion <olivier.d...@polymtl.ca> wrote:
> On Tue, 09 Feb 2021, Aleix Conchillo Flaqué <aconchi...@gmail.com> wrote: > > Hi Olivier, > > > > Unfortunately I don't have an answer, and actually I didn't even know > this > > existed, but I'd love to see a library for it. I added something similar > > (in terms of syntax) to guile-json (define-json-type) and I'm happy to > see > > that it seems I was not doing something very stupid. For this specific > > record it would be something like: > > > > (define-json-type <employee> > > (age) > > (name) > > (profession)) > > > > Which will define a constructor and getters (no setters). However, to > > create a new record you have to use the constructor (which is not very > > convenient) or use an alist and then use (scm->employee). But it would be > > great if one could do: > > Is (scm->employee) something (define-json-type) offers? Just having > that would be great. I would be more tolerant to have guile-json as a > dependency, since it's most likely lighter than Guix, probably already > installed on the user system and it might me useful for users that are > allergic to parentheses for configuration. > > Yes, it is. Actually (scm->employee) is something that (define-json-mapping) offers (also in guile-json). (define-json-mapping) was originally copied from (guix json) which no longer exists in Guix, they use guile-json instead. Then (define-json-type) is based on (define-json-mapping), but yes all of this is available in guile-json. > > > > It would be fantastic to combine (guix records) and guile-json somehow, > but > > I'm not sure how. > > If guile-json' license is compatible with Guix' license, I don't see any > problem with taking the code from Guix and adapting it for guile-json. > > Yes, they both are GPLv3. I was referring about how to actually do it without breaking anything. Aleix