> Quick reply on just one detail we're currently discussing. Sure! It's good that you limit our posting volume :) >> Good point. On success we simply don't raise an error, so any raised >> 'libsodium status is an error status. >> >> I agree with you that we need to have _some_ property that says >> 'libsodium. I'm not sure 'set is the right one. > > That's what I'm envisioning 'subset for. I.e.: > > '(set genetic-c-lib subset libsodium) > '(set sqlstate subset postgresql) > >> 'errno is clearly an error set, but all errno errors don't come from >> POSIX either. > > And thus perhaps '(set posix/errno/whatever subset native-windows). But > maybe not 'linux, 'openbsd, or any other system that claims to be > "actual, real not emulated POSIX" or thereabouts. A native-windows error has both a WinAPI error code (always) as well as a synthetic errno equivalent (most of the time). We can either: 1) give the WinAPI error code and say nothing about errno; 2) drop the WinAPI code and give only a synthetic errno; 3) give both the WinAPI code and a synthetic errno The two codes are from different error sets so there's not way to fit them all into one set. Unless we add 'subcode to go with 'subset, but it's getting excessive. This is exactly the kind of problem I've run into when trying to place everything into disjoint categories instead of a tagging system that permits multiple tags. In this case, it makes sense for same error to be tagged as both 'windows and 'errno, with a different code for each. In fact, I'm starting to doubt even the 'set concept a little. Error sets probably disjoint, but there may be exceptions.