# genz
Markers for proving uniqueness of types using invariant lifetimes.
Provides a non-`Copy` zero-sized type-marker called `UniqueType`, which makes it impossible to call the following
without resorting to `unsafe` code:
```rust
# use genz::*;
fn same_type<'c, T>(t1: UniqueType<'c, T>, t2: UniqueType<'c, T>)
{
panic!("this is impossible!")
}
```