anchor.diff:                  let directVals = reader obj
                   let encVals = reader2 directVals.[tupleEncField]
                   Array.append directVals.[0..tupleEncField-1] encVals)
  -                
  +
       let rec getTupleConstructor (typ:Type) = 
           let etys = typ.GetGenericArguments() 
           let maker1 =  getTupleCtor (typ,BindingFlags.Public)
  
positive.code:         else
              maker1,Some(etys.[tupleEncField])
  
      let getTupleReaderInfo (typ:Type,index:int) =         
          if index < 0 then invalidArg "index" (SR.GetString2(SR.tupleIndexOutOfRange, typ.FullName, index.ToString()))
          let props = typ.GetProperties(instancePropertyFlags ||| BindingFlags.Public) |> orderTupleProperties
          let get index = 
              if index >= props.Length then invalidArg "index" (SR.GetString2(SR.tupleIndexOutOfRange, typ.FullName, index.ToString()))
              props.[index]
          
          if index < tupleEncField then
              get index, None  
          else
              let etys = typ.GetGenericArguments()
              get tupleEncField, Some(etys.[tupleEncField],index-(maxTuple-1))
              
        
      //-----------------------------------------------------------------
      // FUNCTION DECOMPILATION
      
  
negative.code:           let tysA = tyargs.[0..tupleEncField-1]
            let tyB = tyargs.[tupleEncField]
            Array.append tysA (getTupleTypeInfo tyB)
        else
            tyargs
  
      let orderTupleProperties (props:PropertyInfo[]) =
  