anchor.diff:              |> Option.cast<string>
           )
   
  -    let generateCode dataType (document: Document) (typeDecl: ClassDeclarationSyntax) sampleData (ct: CancellationToken) =
  +    let updateTypeProviderAsync (document: Document) (typeDecl: ClassDeclarationSyntax) sampleData parseSampleData ct =
           async {
               let! syntaxRoot = document.GetSyntaxRootAsync ct |> Async.awaitTaskAllowContextSwitch
   
               try
  +                let dataType = 
  +                    parseSampleData sampleData
  +                    |> DataTypeUpdate.CSharp.ensureTypeHasNoPropertyWithSameName
  +
                   let members = [
                       yield! CodeGeneration.generateDataStructure dataType
                       yield! CodeGeneration.generateCreationMethods dataType sampleData
  
positive.code: 
      override x.ComputeRefactoringsAsync (context: CodeRefactoringContext) =
          async {
              try
                  let! node = findContextNode context
  
                  let! refactorings =
                      match node with
                      | :? ClassDeclarationSyntax as typeDecl ->
                          getRefactorings context.Document typeDecl attributeFullName context.CancellationToken
                      | _ ->  async { return [] }
  
                  refactorings
                  |> List.iter context.RegisterRefactoring
              with e ->
                  printfn "%O" e
          }
          |> Async.StartAsTask
          :> System.Threading.Tasks.Task
  
negative.code:                     |> document.WithSyntaxRoot
          }
  
      let getSemanticModel (document: Document) ct =
          document.GetSemanticModelAsync ct
          |> Async.awaitTaskAllowContextSwitch
  
      let createCodeAction document typeDecl parseSampleData sampleData =
          CodeAction.Create(
              "Generate members from sample data",
              Func<_, _>(updateTypeProviderAsync document typeDecl sampleData parseSampleData >> Async.StartAsTask)
          )
  
      let getRefactorings document typeDecl attributeFullName parseSampleData ct = async {
          let! semanticModel = getSemanticModel document ct
  
          return
              tryGetTypeProviderSampleData typeDecl attributeFullName semanticModel
              |> Option.map (createCodeAction document typeDecl parseSampleData)
              |> Option.toList
      }
  
  