+(deftype gerror-signal () 'gerror)
+
+(define-type-method return-type ((type gerror-signal))
+ (declare (ignore type))
+ '(or null gerror))
+
+(define-type-method from-alien-form ((type gerror-signal) gerror &key (ref :free))
+ (declare (ignore type))
+ `(let ((gerror ,(from-alien-form 'gerror gerror :ref ref)))
+ (when gerror
+ (signal-gerror gerror))))
+
+