anchor.diff:              printer.Print("\"")
   
   type BooleanLiteral =
  -    {
  -        Value: bool
  -        Loc: SourceLocation option
  -    }
  +    { Value: bool
  +      Loc: SourceLocation option }
  +
       static member Create(value, ?loc) : Literal =
  -        {
  -            Value = value
  -            Loc = loc
  -        } |> BooleanLiteral
  +        { Value = value
  +          Loc = loc }
  +        |> BooleanLiteral
  +
       static member AsExpr(value, ?loc) : Expression =
            BooleanLiteral.Create(value, ?loc=loc) |> Literal
  +
       interface IPrintable with
           member this.Print(printer) =
               printer.Print((if this.Value then "true" else "false"), ?loc=this.Loc)
   
   type NumericLiteral =
  -    {
  -        Value: float
  -        Loc: SourceLocation option
  -    }
  +    { Value: float
  +      Loc: SourceLocation option }
  +
       static member AsLiteral(value, ?loc) : Literal =
  -        {
  -            Value =value
  -            Loc = loc
  -        } |> NumericLiteral
  +        { Value =value
  +          Loc = loc }
  +        |> NumericLiteral
  +
       static member AsExpr(value, ?loc) : Expression =
  -        NumericLiteral.AsLiteral(value, ?loc=loc) |> Literal
  +        NumericLiteral.AsLiteral(value, ?loc=loc)
  +        |> Literal
  +
       interface IPrintable with
           member this.Print(printer) =
               let value =
  
positive.code:     { Params: TypeAnnotationInfo array }
  
      static member Create(``params``) = { Params = ``params`` }
      interface IPrintable with
          member this.Print(printer) =
              printer.Print("<")
  
negative.code: 
  module PrinterExtensions =
      type Printer with
          member printer.Print(node: IPrintable) =
              node.Print(printer)
  
          member printer.PrintBlock(nodes: 'a array, printNode: Printer -> 'a -> unit, printSeparator: Printer -> unit, ?skipNewLineAtEnd) =
  