anchor.diff:  
   open Froto.Core
   
  -type Proto = ProtoTypes.ProtocolBuffersTypeProvider<"proto/person.proto">
  +open ProtoTypes
  +open ProtoTypes.Core
  +
  +type Proto = ProtocolBuffersTypeProvider<"proto/person.proto">
   type Sample = Proto.ProtoTypes.Sample
   
   let private createPerson() =
  -    let address = Sample.Person.Address(Address1 = "Street", HouseNumber = 12, Whatever = [1; 2; 3], SomeInts = [Sample.Person.IntContainer(Value = 5); Sample.Person.IntContainer(Value = 7)])
  -    Sample.Person(Name = "Name", Id = 1, HasCriminalConvictions = false, Weight = 82.3, PersonGender = Sample.Person.Gender.Female, Email = Some "Email", PersonAddress = Some address)
  +    let address = 
  +        Sample.Person.Address(
  +            Address1 = "Street", 
  +            HouseNumber = 12, 
  +            Whatever = [1; 2; 3], 
  +            SomeInts = [Sample.Person.IntContainer(Value = 5); Sample.Person.IntContainer(Value = 7)])
  +
  +    Sample.Person(
  +        Name = "Name",
  +         Id = 1,
  +         HasCriminalConvictions = false,
  +         Weight = 82.3, 
  +         PersonGender = Sample.Person.Gender.Female, 
  +         Email = Some "Email", 
  +         PersonAddress = Some address)
  +
  +let serializeDeserialize<'T when 'T :> Message> (msg: 'T) (deserialize: ZeroCopyBuffer -> 'T) =
  +    let buffer = ZeroCopyBuffer 1000
  +    msg.Serialize buffer |> ignore
  +    
  +    let buffer' = ZeroCopyBuffer buffer.AsArraySegment
  +    deserialize buffer'
   
   [<Test>]
   let ``Person test``() =
  
positive.code: [<Test>]
  let ``Deserialization test``() =
      let person = createPerson()
      let buffer = ZeroCopyBuffer 1000
      person.Serialize buffer |> ignore
      
      let buffer' = ZeroCopyBuffer buffer
      let person' = Sample.Person.Deserialize buffer'
      
      person'.Name |> should be (equal person.Name)
      person'.Id |> should be (equal person.Id)
  
negative.code:     address'.Address1 |> should be (equal address.Address1)
      address'.HouseNumber |> should be (equal address.HouseNumber)
      address'.Whatever |> should be (equal address.Whatever)
      address'.SomeInts |> List.map (fun v -> v.Value) |> should be (equal (address.SomeInts |> List.map(fun v -> v.Value)))
      
      
  [<Test>]
  let ``Deserialize None optional value``() =
      let person = createPerson()
      person.PersonAddress <- None
      let person' = serializeDeserialize person Sample.Person.Deserialize
      
      person'.PersonAddress.IsSome |> should be False
      
  
  [<Test>]
  let ``Deserialize empty repeated value``() =
      let person = createPerson()
      let address = person.PersonAddress.Value
      
      address.SomeInts <- []
      address.Whatever <- []
  
      let address' = serializeDeserialize address Sample.Person.Address.Deserialize
      
      address'.SomeInts |> should be Empty
      address'.Whatever |> should be Empty