anchor.diff:  
   === Reference implementation
   
  -* TBD
  +https://github.com/apache/groovy/pull/1606
   
   === JIRA issues
   
  
positive.code: 
  * Introduce the `sealed` modifier and `permits` clause in the grammar.
  
  * Support `non-sealed` or `unsealed` sub-hierarchies.
  
  * Require that all classes within a sealed hierarchy be compiled at the same time.
  
  * Require that all classes within a sealed hierarchy belong to the same module.
  
  * Add warnings to the static compiler if a switch is used for a sealed hierarchy
  and not all types are exhaustively covered.
  
negative.code: new shapes outside the original package, it offers no abstraction for a shape which
  could be either a square or circle since `Shape` is not public.
  
  * We can use `protected` visibility to limit access of members strictly to children
  but that doesn't help us solve the aforementioned problems like lack of a visible
  abstraction for `Shape` in the discussed example.
  
  Sealed classes or interfaces can be public but have an associated list of allowed children.
  Classes or interfaces which are not in that list cannot inherit from those sealed types.
  This indicates that we want code reuse within the hierarchy but not beyond.
  