public OpaquePointer(UnsafeMutableRawPointer p) : this(p.Pointer) { }
public UnsafeRawPointer(UnsafeMutableRawPointer p) : this(p.Pointer) { }