Typesafe BufferHandle

why is that needed? Could we just have `pub struct BufferHandle<T>(RawBufferHandle)`?