anchor.diff:  
               inferCollection elementResult.ConvertedType conv
   
  -        | InferedType.Collection (_, MapWithNull (_, (_, typ))) ->
  +        | CollectionOfOptionals typ ->
               let elementResult = generateBsonType ctx (*optionalityHandledByCaller*)false nameOverride typ
   
               let conv = fun (doc:Expr) ->
  
positive.code:             | _ -> x.ConvertedType
  
  [<AutoOpen>]
  module ActivePatterns =
  
      let (|MapWithNull|_|) (map:Map<_,_>) =
          if map.Count = 2 then
              match Map.toList map with
              | [ (InferedTypeTag.Null, _); elem ]
              | [ elem; (InferedTypeTag.Null, _) ] -> Some elem
              | _ -> None
          else None
  
  module BsonTypeBuilder =
  
  
negative.code: 
              objectTy
  
          | SingletonCollection typ
          | EmptyCollection typ ->
  
              let elementResult = generateBsonType ctx (*optionalityHandledByCaller*)false nameOverride typ
  
  