anchor.diff:  [source,java]
   ----
   @Collection                                                     // <.>
  +@RequiredArgsConstructor                                        // <.>
   public class DocumentHolder_documents {
   
       private final DocumentHolder holder;
  -    public DocumentHolderDocuments(DocumentHolder holder) {     // <.>
  -        this.holder = holder;
  -    }
   
       public List<Document> coll() {                              // <.>
           ...
  
positive.code:     public boolean hiderProp() { /* ... */ }                    // <.>
  }
  ----
  <.> indicates this is a property mixin
  <.> mixee is injected into the mixin
  <.> method (which must be called "prop") must accept no arguments, be query-only, and return a scalar value.
  <.> supporting methods (discussed in xref:business-rules.adoc[business rules]) follow the usual naming conventions. +
  (Because the property is derived/read-only, the only supporting method that is relevant is `hideProp()`).
  
  This contributes a property called "mostRecentDocument".
  
  The following does the same thing, but using the (more flexible but more verbose) xref:refguide:applib-ant:Mixin.adoc[`@Mixin`] annotation:
  
  [source,java]
  ----
  @Mixin(method="prop")                                           // <1>
  public class DocumentHolder_mostRecentDocument {
  
      private final DocumentHolder holder;
      public DocumentHolderDocuments(DocumentHolder holder) {     // <.>
          this.holder = holder;
      }
  
      @Action(semantics=SemanticsOf.SAFE)                         // <.>
      @ActionLayout(contributed = Contributed.AS_ASSOCIATION)     // <.>
      public Document prop() {                                    // <.>
          ...
      }
      public boolean hiderProp() { /* ... */ }                    // <.>
  }
  ----
  <.> indicates this is a mixin, and in this case nominates the method name. +
  The recommended name for properties is "prop" (if none is specified the default name is "$$").
  <.> mixee is injected into the mixin
  <.> action has no side-effects, and must match `@Mixin#method` above and accept no arguments
  <.> and should be rendered as an association.
  The mixin is a property rather than a collection because the return type is a scalar.
  <.> supporting methods (discussed in xref:business-rules.adoc[business rules]) follow the usual naming conventions.
  
  
negative.code:     public boolean hideColl() { /* ... */ }                     // <.>
  }
  ----
  <.> indicates this is a collection mixin (that contributes its method as an association) with method name 'coll'
  <.> mixee is injected into the mixin
  <.> method (which must be called "coll") must accept no arguments, be query-only, and return a collection
  <.> supporting methods (discussed in xref:business-rules.adoc[business rules]) follow the usual naming conventions
  (Because the collection is derived/read-only, the only supporting method that is relevant is `hideColl()`).
  
  The above will result in a contributed collection "documents" for all types that implement/extend from `DocumentHolder`.
  
  The following does the same thing, but using the xref:refguide:applib-ant:DomainObject.adoc[`@DomainObject`] annotation, to explicitly specify the method name:
  
  [source,java]
  ----
  @Collection                                                     // <.>
  @DomainObject(nature=MIXIN, mixinMethod="coll")                 // <.>
  @RequiredArgsConstructor                                        // <.>
  public class DocumentHolder_documents {
  
      private final DocumentHolder holder;
  
      public List<Document> coll() {                              // <.>
          ...
      }
      public boolean hideColl() { /* ... */ }                     // <.>
  }
  ----
  <.> indicates this is a collection mixin (that contributes its method as an association)
  <.> nominates the method name 
  The recommended name for collections is "coll" (if none is specified the default name is "$$").
  <.> mixee is injected into the mixin
  <.> method has no side-effects, must match `@DomainObject(mixinMethod=...)` above and accept no arguments
  The mixin is a collection rather than a property because the return type is a collection, not a scalar.
  <.> supporting methods (discussed in xref:business-rules.adoc[business rules]) follow the usual naming conventions.
  
  