anchor.diff:              let msg = recvMessage (shellSocket)
   
               try
  -                match msg.Header.msg_type with
  -                | "kernel_info_request" -> kernelInfoRequest (msg) 
  -                | "execute_request"     -> executeRequest (msg) 
  -                | "complete_request"    -> completeRequest (msg) 
  -                | "connect_request"     -> connectRequest (msg)
  -                | "shutdown_request"    -> shutdownRequest (msg)
  -                | "history_request"     -> historyRequest (msg)
  -                | "object_info_request" -> objectInfoRequest (msg)
  -                | _                     -> logMessage (String.Format("msg_type not implemented {0}", msg.Header.msg_type))
  +                match msg.Content with
  +                | KernelRequest(r)      -> kernelInfoRequest msg r
  +                | ExecuteRequest(r)     -> executeRequest msg r
  +                | CompleteRequest(r)    -> completeRequest msg r
  +                | ConnectRequest(r)     -> connectRequest msg r
  +                | ShutdownRequest(r)    -> shutdownRequest msg r
  +                | HistoryRequest(r)     -> historyRequest msg r
  +                | ObjectInfoRequest(r)  -> objectInfoRequest msg r
  +                | _                     -> logMessage (String.Format("Unknown content type. msg_type is `{0}`", msg.Header.msg_type))
               with 
               | ex -> handleException ex
      
  
positive.code:         sendMessage ioSocket envelope "status" { execution_state = state } 
  
      /// Handles a 'kernel_info_request' message
      let kernelInfoRequest(msg : KernelMessage) = 
          let content = 
              {
                  protocol_version = [| 4; 0 |]; 
  
negative.code:         let ex = 
              try
                  // preprocess
                  preprocessAndEval (content.code)
                  None
              with
              | exn -> Some exn
  