Subject: [bug#69126] [PATCH 2/2] gnu: Add type-safe.

From: Skyler Ferris <[email-masked]>
Date: Wed, 14 Feb 2024 21:30:57 +0000

Things needing attention:

When I tried to compile a file which included `type_safe/integer.hpp` 
from a container (see below for exact commands & source), I got an error 
that the debug_assert header could not be found. I resolved this by 
changing the debug-assert package from a normal input into a propagated 
input, but there could be other ways to solve this.

main.cpp
```
#include <type_safe/integer.hpp>

int main(void) {
     type_safe::integer<int> tsi(1);
     return tsi.get();
}
```

```
$ ./pre-inst-env guix shell gcc-toolchain type-safe -C -- g++ -std=c++11 
main.cpp
<error indicating that debug_assert.hpp was not found>
```

More details:

This diff applies cleanly to commit 
ac470c516e19f194228edf9e348bdbc7fc10f97a, after applying the previous 
commit in this series.

As with the review on the previous patch, notes about confidence in 
source integrity are provided as an indication of attention and to 
provide transparency. The commit tagged v0.2.3 does not have a signature 
on it, but the commit 3 steps prior has a good signature. It uses the 
same signing key as debug-assert, so all of the notes from there apply 
here as well.

`./pre-inst-env guix build type-safe` succeeded on my machine, an x86_64 
Xen guest. Additionally, after fixing the issue noted in the "Things 
needing attention" section, the following test file produced an expected 
compiler error indicating that the type_safe::integer needs an initial 
value.

main.cpp
```
#include <type_safe/integer.hpp>

int main(void) {
     type_safe::integer<int> tsi;
     return tsi.get();
}
```

Once I added an initial value as shown in the "Things needing attention" 
section, the file built successfully and the executable returned the 
expected exit code.

```
$ ./pre-inst-env guix shell gcc-toolchain type-safe -C -- g++ -std=c++11 
main.cpp
$ ./a.out
$ echo $?
1
```

The license file in the project matches the contents I see at 
https://directory.fsf.org/wiki/License:Expat.