anchor.diff:  
   ==== Abstract class
   
  -Abstract classes represent generic concepts, thus, they cannot be instantiated, being created to be subclassed. Their members incluide fields/properties and abstract or concrete methods. Abstract methods do not have implementation, and must be implemented by concrete subclasses.
  +Abstract classes represent generic concepts, thus, they cannot be instantiated, being created to be subclassed. Their members include fields/properties and abstract or concrete methods. Abstract methods do not have implementation, and must be implemented by concrete subclasses.
   
   [source,groovy]
   ----
  
positive.code: 
   * They increase encapsulation by hiding the inner class from other classes, which do not need to know about it. This also leads to cleaner packages and workspaces.
   * They provide a good organization, by grouping classes that are used by only one class.
   * They lead to more mantainable codes, since inner classes are near the classes that use them.
  
  In several cases, inner classes are implementation of interfaces whose methods are needed by the outer class. The code below illustrates this with the usage of threads, which are very common.
  
  
negative.code: 
  === Constructors
  
  Constructors are special methods used to initialize an object with a specific state. As in normal methods, it is possible for a class to declare more than one constructor. In Groovy there are two ways to invoke constructors: with positional parameters or named parameters. The former one is like we invoke Java constructors, while the second way allows one to specify the parameter names when invoking the constructor.
  
  ==== Positional argument constructor
  
  