interface A : B { attribute DOMString a; }; interface B : C { [Default] object toJSON(); attribute long b; }; interface C { attribute DOMString c; }; interface D : E { [Default] object toJSON(); attribute float d; }; interface E : F { attribute DOMString e; }; interface F { [Default] object toJSON(); attribute unrestricted double f; }; interface G { [Default] object toJSON(); attribute octet g; }; interface H { [Default] object toJSON(); attribute DOMString h; }; interface I { [Default] object toJSON(); attribute boolean i; }; interface J { [Default] object toJSON(); attribute D j; }; A implements G; A implements H; B implements D; E implements I; H implements J;