# Basic types

The Shelter standard library define the following type in `shelter/lib/include/std/type.h`:
- `sh_int8`: 1 byte signed integer
- `sh_uint8`: 1 byte unsigned integer
- `sh_int16`: 2 bytes signed integer
- `sh_uint16`: 2 bytes unsigned integer
- `sh_int32`: 4 bytes signed integer
- `sh_uint32`: 4 bytes unsigned integer
- `sh_int64`: 8 bytes signed integer
- `sh_uint64`: 8 bytes unsigned integer
- `sh_bool`: wrapper of `sh_uint8`
- `sh_iter64`: wrapper of `sh_uint64`, used for loops
- `va_list`: wrapper of `__builtin_va_list`

The Shelter standard library the following macros and values in `shelter/lib/include/std/type.h`:
- `SH_INT8_MIN`: the minimum possible value of `sh_int8`
- `SH_INT8_MAX`: the maximum possible value of `sh_int8`
- `SH_UINT8_MAX`: the maximum possible value of `sh_uint8`
- `SH_INT16_MIN`: the minimum possible value of `sh_int16`
- `SH_INT16_MAX`: the maximum possible value of `sh_int16`
- `SH_UINT16_MAX`: the maximum possible value of `sh_uint16`
- `SH_INT32_MIN`: the minimum possible value of `sh_int32`
- `SH_INT32_MAX`: the maximum possible value of `sh_int32`
- `SH_UINT32_MAX`: the maximum possible value of `sh_uint32`
- `SH_INT64_MIN`: the minimum possible value of `sh_int64`
- `SH_INT64_MAX`: the maximum possible value of `sh_int64`
- `SH_UINT64_MAX`: the maximum possible value of `sh_uint64`
- `SH_TRUE`: a wrapper of `(sh_bool)1`
- `SH_FALSE`: a wrapper of `(sh_bool)0`
- `SH_DEFVALUE`: the default value for any argument marked by `DEFAULT`
- `SH_NULLPTR`: wrapper of `(void*)0`
- `va_start(v,l)`: wrapper of `__builtin_va_start(v,l)`
- `va_end(v)`: wrapper of `__builtin_va_end(v)`
- `va_arg(v,l)`: wrapper of `__builtin_va_arg(v,l)`
