anchor.diff:          | _ -> None
       | _ -> None
   
  -let private (|BaseCons|_|) com ctx = function
  -    | BasicPatterns.NewObject(meth, _, args) ->
  +let private (|BaseCons|_|) com ctx (fsExpr: FSharpExpr) =
  +    let validateGenArgs' typArgs =
  +        tryDefinition fsExpr.Type |> Option.iter (fun tdef ->
  +            validateGenArgs ctx (makeRangeFrom fsExpr) tdef.GenericParameters typArgs)
  +    match fsExpr with
  +    | BasicPatterns.NewObject(meth, typArgs, args) ->
           match ctx.baseClass with
           | Some baseFullName
               when sanitizeEntityFullName meth.EnclosingEntity = baseFullName ->
  +            validateGenArgs' typArgs
               Some (meth, args)
           | _ -> None
  -    | BasicPatterns.Call(None, meth, _, _, args) as fsExpr ->
  +    | BasicPatterns.Call(None, meth, typArgs, _, args) ->
           match ctx.baseClass with
           | Some baseFullName when meth.CompiledName = ".ctor"
                               && (sanitizeEntityFullName meth.EnclosingEntity) = baseFullName ->
               if not meth.IsImplicitConstructor then
                   FableError("Inheritance is only possible with base class primary constructor: "
                               + baseFullName, makeRange fsExpr.Range) |> raise
  +            validateGenArgs' typArgs
               Some (meth, args)
           | _ -> None
       | _ -> None
  
positive.code:         makeCallFrom com ctx r typ meth (typArgs, methTypArgs) None argExprs
      | BasicPatterns.NewObject(meth, typArgs, _) ->
          let r, typ = makeRangeFrom fsExpr, makeType com ctx fsExpr.Type
          makeCallFrom com ctx r typ meth (typArgs, []) None argExprs
      | BasicPatterns.NewUnionCase(fsType, unionCase, _) ->
          transformNonListNewUnionCase com ctx fsExpr fsType unionCase argExprs
  
negative.code:         let r, typ = makeRangeFrom fsExpr, makeType com ctx fsExpr.Type
          tryDefinition fsExpr.Type |> Option.iter (fun tdef ->
              validateGenArgs ctx r tdef.GenericParameters typArgs)
          List.map (com.Transform ctx) args
          |> makeCallFrom com ctx r typ meth (typArgs, []) None
  
  