anchor.diff:      // pre: Length(data) > 34
       // correct post: something like data = ClientHelloBytes(...) 
       let (clVerBytes,clRandomBytes,data) = split2 data 2 32 in
  +    let cv = parseVersion clVerBytes
  +    let cr = parseRandom clRandomBytes
       match vlsplit 1 data with
       | Error(x,y) -> Error(x,y)
       | Correct (sid,data) ->
  
positive.code:     ((makeHSPacket HT_server_hello data),sRandom)
  
  let parseServerHello data =
      let (serverVerBytes,data) = split data 2 in
      let serverVer = parseVersion serverVerBytes in
      let (serverRandomBytes,data) = split data 32 in
      match vlsplit 1 data with
      | Error(x,y) -> Error (x,y)
      | Correct (sid,data) ->
      let (csBytes,data) = split data 2 in
      let cs = cipherSuite_of_bytes csBytes in
      //TODO we should fail here if cs is "unknown"
      let (cmBytes,data) = split data 1 in
      let cm = compression_of_bytes cmBytes in
      correct(
       { server_version = serverVer
         sh_random = parseRandom serverRandomBytes
  
negative.code:     match vlsplit 1 data with
      | Error(x,y) -> Error(x,y)
      | Correct (cmBytes,extensions) ->
      let cm = parseCompressions cmBytes
      correct(
       { client_version      = cv 
         ch_random           = cr 
         ch_session_id       = sid
         cipher_suites       = clientCipherSuites
         compression_methods = cm 
         extensions          = extensions},
       clRandomBytes
      )
  