anchor.diff:                  [ 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 rootName inferedType
  +            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 resolver =
  -            { ResolutionType = DesignTime
  -              DefaultResolutionFolder = cfg.ResolutionFolder
  -              ResolutionFolder = resolutionFolder }
  +        let getSamplesFromPath path =
   
  -        let path = resolver |> getPath path
  +            let resolver =
  +                { ResolutionType = DesignTime
  +                  DefaultResolutionFolder = cfg.ResolutionFolder
  +                  ResolutionFolder = resolutionFolder }
   
  -        let limit =
  -            if inferLimit <= 0 then None
  -            else Some inferLimit
  +            let path = resolver |> getPath path
   
  -        let maybeTruncate =
  -            let flip f x y = f y x
  -            flip <| Option.fold (flip Seq.truncate)
  +            let limit =
  +                if inferLimit <= 0 then None
  +                else Some inferLimit
   
  -        let spec =
  +            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
  -            |> getSpecFromSamples
  +
  +        let spec = getSamplesFromPath path |> getSpecFromSamples
   
           createAllMembers cfg spec path resolutionFolder resource
           |> tpType.AddMembers
  
positive.code:            <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').
                  This is useful for when exposing types generated by the type provider.</param>"""
  
      do bsonProvTy.AddXmlDoc helpText
  
negative.code:         let path = args.[0] :?> string
          let inferLimit = args.[1] :?> int
          let rootName = args.[2] :?> string
          let resolutionFolder = args.[3] :?> string
          let resource = args.[4] :?> string
  
  