anchor.diff:        InputTransactionIndex: int
         ResponseScriptLength: int64
         ResponseScript: array<byte>
  -      SequenceNumber: int }
  +      SequenceNumber: int 
  +      NumberOfOutputs: int64
  +      Outputs: array<Output> }
   
   let magicNumber = [| 0xf9uy; 0xbeuy; 0xb4uy; 0xd9uy; |]
  +
  +let readOutput offSet (bytesToProcess: array<byte>) =
  +    let output = bytesToInt64 bytesToProcess.[offSet .. offSet + 7]
  +    let challengeScriptLength, bytesUsed = decodeVariableLengthInt bytesToProcess.[offSet + 8 .. offSet + 16]
  +    let offSet = offSet + 8 + bytesUsed
  +    let bytesUsed = offSet + int challengeScriptLength
  +    printfn "challengeScriptLength: %i bytesUsed: %i bytesToProcess.Length: %i" challengeScriptLength bytesUsed bytesToProcess.Length
  +    { Value = output
  +      ChallengeScriptLength = challengeScriptLength
  +      ChallengeScript = bytesToProcess.[offSet .. bytesUsed - 1] }, bytesUsed
   
   let readMessage (e: IEnumerator<'a>) =
       let number = take 4 e
  
positive.code:     let responseScriptLength, bytesUsed = decodeVariableLengthInt bytesToProcess.[offSet + 36 .. offSet + 44]
      let offSet = offSet + 36 + bytesUsed
      let responseScriptLengthInt = int responseScriptLength // assume responseScriptLength will always fit into an int32
      let responseScript = bytesToProcess.[offSet .. offSet + responseScriptLengthInt] 
      let sequenceNumber = bytesToInt32 bytesToProcess.[offSet + responseScriptLengthInt + 1 .. offSet + responseScriptLengthInt + 3]
      let block =
          { Version = version
            Hash = hash
  
negative.code:           InputTransactionIndex = inputTransactionIndex
            ResponseScriptLength = responseScriptLength
            ResponseScript = responseScript
            SequenceNumber = sequenceNumber
            NumberOfOutputs = numberOfOutputs
            Outputs = Array.ofList outputs }
  
      printfn "%A" block 
  
  