anchor.diff:             <param name='ResolutionFolder'>Directory used for resolving relative file references
                   (at design time and in hosted execution).</param>
              <param name='EmbeddedResource'>When specified, the type provider first attempts to load
  -                the file from the specified resource (e.g. 'MyCompany.MyAssembly, resource_name.bson').
  +                the file from the specified resource (e.g. `MyCompany.MyAssembly, resource_name.bson`).
                   This is useful for when exposing types generated by the type provider.</param>"""
   
       do bsonProvTy.AddXmlDoc helpText
  
positive.code:         let path = args.[0] :?> string
          let inferLimit = args.[1] :?> int
          let rootName = args.[2] :?> string
          let rootName = if String.IsNullOrWhiteSpace rootName then "Root" else NameUtils.singularize rootName
          let resolutionFolder = args.[3] :?> string
          let resource = args.[4] :?> string
  
  
negative.code:                 [ for sampleBson in samples -> BsonInference.inferType "" sampleBson ]
                  |> Seq.fold (StructuralInference.subtypeInfered (*allowEmptyValues*)false) StructuralTypes.Top
  
              let nameOverride =
                  if String.IsNullOrWhiteSpace rootName then "Root"
                  else NameUtils.singularize rootName
  
              let ctx = BsonGenerationContext.Create(tpType, replacer)
              let result = BsonTypeBuilder.generateBsonType ctx (*canPassAllConversionCallingTypes*)false
                      (*optionalityHandledByParent*)false nameOverride inferedType
  
              { GeneratedType = tpType
                RepresentationType = result.ConvertedType
                CreateFromStream = fun stream ->
                      result.GetConverter ctx <@@ BsonTop.CreateList(%stream) @@> }
  
          let getSamplesFromPath path =
  
              let resolver =
                  { ResolutionType = DesignTime
                    DefaultResolutionFolder = cfg.ResolutionFolder
                    ResolutionFolder = resolutionFolder }
  
              let path = resolver |> getPath path
  
              let limit =
                  if inferLimit <= 0 then None
                  else Some inferLimit
  
              let maybeTruncate =
                  let flip f x y = f y x
                  flip <| Option.fold (flip Seq.truncate)
  
              File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read)
              |> BsonTop.Parse
              |> maybeTruncate limit
  
          let spec = getSamplesFromPath path |> getSpecFromSamples
  
          createAllMembers cfg spec path resolutionFolder resource
          |> tpType.AddMembers
  