These precompiler directives allow additional coding without breaking inheritence. #IncludeInherited adds the inherited sourcecode (model,template) for this trigger and object (entity, field, form) #IncludeDefault adds the current default sourcecode for this trigger and object (entity, field, form) To ease overwriting of entries, the compiler should IGNORE multiple entry definitions and just take the first one.
#includeinherited: I just want to extend/overwrite a modeled entry, but want to keep inheriting all other entries. #includedefault: Allows a FLEXIBLE reference to the defaults, and a chance to supersede replace modeled entries with the default set.
adding these precompiler directives makes it much easier to extend (and overwrite) inherited code. See the lot of discussions how to guarantee inheritance when modifying a single entry.