anchor.diff:  open ProviderImplementation.ProvidedTypes
   open Froto.Parser.Model
   
  -type Container = Dictionary<string, obj>
  +type Underlying = Dictionary<string, obj>
  +
  +type PropertyMetadata = 
  +    { ProvidedProperty: ProvidedProperty;
  +      ProtoField: ProtoField }
   
   [<RequireQualifiedAccess>]
   module internal TypeGen =
  
positive.code:             propertyType, 
              GetterCode = (fun args -> 
                  Expr.Coerce(
                      <@@ ((%%args.[0]: obj) :?> Container).[propertyName] @@>,
                      propertyType)))
  
      /// Creates a constructor which intialized given list of properties. 
  
negative.code:         message.Enums |> Seq.map (createEnum nestedScope lookup) |> Seq.iter providedType.AddMember
          message.Messages |> Seq.map (typeForMessage nestedScope lookup) |> Seq.iter providedType.AddMember
  
          let properties = 
              message.Fields 
              |> List.map (fun field -> 
                  { ProtoField = field; 
                    ProvidedProperty =  propertyForField nestedScope lookup field })
  
          properties |> Seq.iter (fun p -> providedType.AddMember p.ProvidedProperty)
          
          providedType.AddMember <| createConstructor properties
  
  