         set { assign(newValue: newValue) }
     }
 
-    public var raw: gpointer? {
-        get { storage.pointee.pointee }
-        set { assign(newValue: newValue.flatMap(T.init(raw:))) }
-    }
-
     public init(wrappedValue: T?) {
         self.storage = UnsafeMutablePointer.allocate(capacity: 1)
         self.storage.pointee = UnsafeMutablePointer.allocate(capacity: 1)

public protocol GWeakCapturing {
    init(raw: UnsafeMutableRawPointer)
}


@propertyWrapper
public final class GWeak<T: ObjectProtocol & GWeakCapturing> {

        assign(newValue: wrappedValue) 
    }

    public convenience init(_ other: T?) {
        self.init(wrappedValue: other)
    }

    private func assign(newValue: T?) {
