## Expand description

Type-level signed integers.

Type **operators** implemented:

From `core::ops`

: `Add`

, `Sub`

, `Mul`

, `Div`

, and `Rem`

.
From `typenum`

: `Same`

, `Cmp`

, and `Pow`

.

Rather than directly using the structs defined in this module, it is recommended that you import and use the relevant aliases from the consts module.

Note that operators that work on the underlying structure of the number are
intentionally not implemented. This is because this implementation of signed integers
does *not* use twos-complement, and implementing them would require making arbitrary
choices, causing the results of such operators to be difficult to reason about.

## Example

```
use std::ops::{Add, Div, Mul, Rem, Sub};
use typenum::{Integer, N3, P2};
assert_eq!(<N3 as Add<P2>>::Output::to_i32(), -1);
assert_eq!(<N3 as Sub<P2>>::Output::to_i32(), -5);
assert_eq!(<N3 as Mul<P2>>::Output::to_i32(), -6);
assert_eq!(<N3 as Div<P2>>::Output::to_i32(), -1);
assert_eq!(<N3 as Rem<P2>>::Output::to_i32(), -1);
```

## Re-exports

`pub use crate::marker_traits::Integer;`

## Structs

- Type-level signed integers with negative sign.
- Type-level signed integers with positive sign.
- The type-level signed integer 0.