anchor.diff:  
   /// A comma-separated sequence of expressions.
   type SequenceExpression =
  -    {
  -        Expressions: Expression array
  -        Loc: SourceLocation option
  -    }
  -    static member AsExpr(expressions, ?loc) : Expression =
  -        {
  -            Expressions = expressions
  -            Loc = loc
  -        } |> SequenceExpression
  +    { Expressions: Expression array
  +      Loc: SourceLocation option }
  +
  +    static member AsExpr(expressions, ?loc): Expression =
  +        { Expressions = expressions; Loc = loc }
  +        |> SequenceExpression
  +
       interface IPrintable with
           member this.Print(printer) =
               printer.AddLocation(this.Loc)
  
positive.code: //    member _.TypeAnnotation: TypeAnnotation option = typeAnnotation
  
  type RestElement =
      {
          Name: string
          Argument: Pattern
          TypeAnnotation: TypeAnnotation option
          Loc: SourceLocation option
      }
      static member AsPattern(argument: Pattern, ?typeAnnotation, ?loc) : Pattern =
          {
              Name = argument.Name
              Argument = argument
              TypeAnnotation = typeAnnotation
              Loc = loc
          } |> RestElement
      interface IPrintable with
          member this.Print(printer) =
              printer.Print("...", ?loc=this.Loc)
  
negative.code: 
  /// Not in Babel specs
  type EmitExpression =
      { Value: string
        Args: Expression array
        Loc: SourceLocation option }
  
      static member AsExpr(value, args, ?loc): Expression =
          { Value = value
            Args = args
            Loc = loc }
          |> EmitExpression
  
      interface IPrintable with
          member this.Print(printer) =
  