anchor.diff:  
   
   As described in the xref:userguide:fun:overview.adoc#mixins[overview], a mixin acts like a trait or extension method, allowing one module to contribute behaviour or derived state to another object.
  +This is a *very powerful feature*, but at the same time is  easy to use.
   
   Under the covers, all mixins are basically actions that use the mixee as one of their arguments.
   
  
positive.code: public class SimpleObject /* ... */ {
  
      // ...
      public static class UpdateNameActionDomainEvent extends
              SimpleModule.ActionDomainEvent<SimpleObject.updateName> {}  // <.>
  
      @Action(semantics = IDEMPOTENT,
  	        commandPublishing = Publishing.ENABLED,
  	        executionPublishing = Publishing.ENABLED,
  	        associateWith = "name",
  	        domainEvent = UpdateNameActionDomainEvent.class)
      public class updateName {                                           // <.>
          public SimpleObject act(@Name final String name) {
              setName(name);                                              // <.>
              return SimpleObject.this;
  
negative.code:     // ...
  }
  ----
  <.> Mixin class is not `static`, so that the containing object is implicitly available.
  +
  Its name can be either "camelCase" or "PascalCase", either will work.
  
  <.> Domain event can be declared within the mixin, again, not `static`.
  +
  Note that it is genericised on the mixin, not on the mixee
  
  <.> Acts on the owning instance.
  <.> xref:business-rules.adoc[Supporting methods] follow the same naming convention.
  <.> Acts on the owning instance.
  