+(defmethod validate-superclass ((class interface-class) (super standard-class))
+ (subtypep (class-name super) 'interface))
+
+
+(define-type-method alien-type ((type interface))
+ (declare (ignore type))
+ (alien-type 'gobject))
+
+(define-type-method size-of ((type interface) &key inlined)
+ (assert-not-inlined type inlined)
+ (size-of 'gobject))
+
+(define-type-method from-alien-form ((type interface) location &key (ref :copy))
+ (declare (ignore type))
+ (from-alien-form 'gobject location :ref ref))
+
+(define-type-method from-alien-function ((type interface) &key (ref :copy))
+ (declare (ignore type))
+ (from-alien-function 'gobject :ref ref))
+
+(define-type-method to-alien-form ((type interface) instance &optional copy-p)
+ (declare (ignore type))
+ (to-alien-form 'gobject instance copy-p))
+
+(define-type-method to-alien-function ((type interface) &optional copy-p)
+ (declare (ignore type))
+ (to-alien-function 'gobject copy-p))
+
+(define-type-method reader-function ((type interface) &key ref inlined)
+ (assert-not-inlined type inlined)
+ (reader-function 'gobject :ref ref))
+
+(define-type-method writer-function ((type interface) &key temp inlined)
+ (assert-not-inlined type inlined)
+ (writer-function 'gobject :temp temp))
+
+(define-type-method destroy-function ((type interface) &key temp inlined)
+ (assert-not-inlined type inlined)
+ (destroy-function 'gobject :temp temp))