anchor.diff:          { TypeAnnotation = ``type`` }
           |> NullableTypeAnnotation
   
  -    interface IPrintable with
  -        member this.Print(printer) =
  -            printer.Print(this.TypeAnnotation)
  +    member this.Print(printer) =
  +        this.TypeAnnotation.Print(printer)
   
   type GenericTypeAnnotation =
       { Id: Identifier
  
positive.code:           Operator = operator
            Loc = loc }
          |> LogicalExpression
      interface IPrintable with
          member this.Print(printer) =
              printer.PrintOperation(this.Left, this.Operator, this.Right, this.Loc)
  
  // Patterns
  // type AssignmentProperty(key, value, ?loc) =
  
negative.code:     | ContinueStatement of ContinueStatement
      | ExpressionStatement of ExpressionStatement
  
      member this.Print(printer) =
          match this with
          | Declaration(s) -> s.Print(printer)
          | IfStatement(s) -> s.Print(printer)
          | TryStatement(s) -> s.Print(printer)
          | ForStatement(s) -> s.Print(printer)
          | BreakStatement(s) -> s.Print(printer)
          | WhileStatement(s) -> s.Print(printer)
          | ThrowStatement(s) -> s.Print(printer)
          | BlockStatement(s) -> s.Print(printer)
          | ReturnStatement(s) -> s.Print(printer)
          | SwitchStatement(s) -> s.Print(printer)
          | LabeledStatement(s) -> s.Print(printer)
          | DebuggerStatement(s) -> s.Print(printer)
          | ContinueStatement(s) -> s.Print(printer)
          | ExpressionStatement(s) -> s.Print(printer)
  
  /// Note that declarations are considered statements; this is because declarations can appear in any statement context.
  type Declaration =
  