This exists solely because I needed NonZero types beyond what the std provides, so I created generic ones using the num crate.