class Object_Impl (Base) { methods { @property a { set { values { value: const(list)*; } return: bool (false); } get { } keys { part: const(char)*; } values { value: own(list*); } } @property b { set { } get @virtual_pure { /* set as virtual pure - no implementation expected */ } values { value: own(list*); } } constructor_1 { params { @in a: int; @in b: char; } } constructor_2 { } foo1 { [[comment foo]] params { @in a: int; [[a]] @inout b: char; @out c: double; } return: char * (null); [[comment for method return]] } foo2 @const { [[comment foo]] params { @in a: int; @in b: const(char)*; } } pure_foo3 @virtual_pure { /* set as virtual pure - no implementation expected */ } } implements { class.constructor; class.destructor; Base.constructor; Base.destructor; } constructors { .constructor_1; .constructor_2; } }