anchor.diff:                  printer.Print(" implements ")
                   printer.PrintArray(implements, (fun p x -> p.Print(x)), (fun p -> p.Print(", ")))
               printer.Print(" ")
  -            printer.Print(body)
  -
  -module Patterns =
  -    let (|EmitExpression|_|) (expr: Expression) =
  -        match expr with
  -        | :? EmitExpression as ex -> Some (ex.Value, ex.Args, ex.Loc)
  -        | _ -> None
  -
  -    let (|Identifier|_|) (expr: Expression) =
  -        match expr with
  -        | :? Identifier as ex -> Some (ex.Name, ex.Optional, ex.TypeAnnotation, ex.Loc)
  -        | _ -> None
  -
  -    let (|RegExpLiteral|_|) (literal: Literal) =
  -        match literal with
  -        | :? RegExpLiteral as lit -> Some (lit.Pattern, lit.Flags, lit.Loc)
  -        | _ -> None
  -
  -    let (|CallExpression|_|) (expr: Expression) =
  -        match expr with
  -        | :? CallExpression as ex -> Some (ex.Callee, ex.Arguments, ex.Loc)
  -        | _ -> None
  -
  -    let (|ObjectTypeAnnotation|_|) (typ: TypeAnnotationInfo) =
  -        match typ with
  -        | :? ObjectTypeAnnotation as ann -> Some (ann.Properties, ann.Indexers, ann.CallProperties, ann.InternalSlots, ann.Exact)
  -        | _ -> None
  -
  -    let (|InterfaceExtends|_|) (node: Node) =
  -        match node with
  -        | :? InterfaceExtends as n -> Some (n.Id, n.TypeParameters)
  -        | _ -> None
  -
  -    let (|InterfaceDeclaration|_|) (decl: Declaration) =
  -        match decl with
  -        | :? InterfaceDeclaration as decl -> Some (decl.Id, decl.Body, decl.Extends, decl.Implements, decl.TypeParameters)
  -        | _ -> None
  +            printer.Print(body)
positive.code:     member _.Id: Identifier = id
      member _.ReturnType: TypeAnnotation option = returnType
      member _.TypeParameters: TypeParameterDeclaration option = typeParameters
      member _.Loc: SourceLocation option = loc
      interface Declaration with
          member _.Print(printer) =
              printer.PrintFunction(Some id, ``params``, body, typeParameters, returnType, loc, isDeclaration=true)
  
negative.code:     member _.Name: string = name
      member _.Optional: bool option = optional
      member _.TypeAnnotation: TypeAnnotation option = typeAnnotation
      interface PatternExpression with
          member _.Name = name
          member _.Print(printer) =
  