It's probably because other importers are structured that way. I'd be in favor of changing that and using the condition system.

Le 27 septembre 2022 13:33:56 GMT+02:00, Csepp <raingloom@riseup.net> a écrit :
The specific error is this:
Wrong number of values returned to continuation (expected 2)
It is caused by opam->guix-package silencing intermediate errors by
using and-let* (the poor person's Maybe monad) and returning #f when the
receiving side expects two return values.

Initial reproducer:
guix import opam -r mirage

Also happens with opam-monorepo.

Cc-ing Julien whom might know why the code is structured this way? It's
not like the calling side can handle a falsy return and the error is not
detected early either, so the user doesn't even know what is causing it.
Can I just turn it all into errors? Or maybe we can use the condition
system?