anchor.diff:            let deserializerExpr =
                 QExpr.Lambda(reader,
                     fieldVarsAndVals
  -                  |> Array.fold (fun e (var,def,_) -> QExpr.Let(var, def, e)) (QExpr.Sequential(expr, NewTuple_(fieldVarsAndVals |> Array.map (fun (_,_,getVal) -> getVal) |> List.ofArray))))
  +                  |> Array.fold (fun e (var,def,_) -> QExpr.Let(var, def, e))
  +                                (QExpr.Sequential(expr, NewTuple_(fieldVarsAndVals
  +                                                                  |> Array.map (fun (_,_,getVal) -> getVal)
  +                                                                  |> List.ofArray))))
   
             deserializerVar, deserializerExpr]
   
  
positive.code:   let untaggedDeserializers (Lazy (untaggedDeserializerVars : IDictionary<uint16, Quotations.Var>)) =
        [for (KeyValue(idx,deserializerVar)) in untaggedDeserializerVars ->
            let makeVarExprs = [for i in relatedStructs ->
                                    i,
                                    fun rdr ->
                                        QExpr.Application(QExpr.Var untaggedDeserializerVars.[i], rdr)] |> dict
  
            let reader = Quotations.Var("rdr", typeof<IUntaggedProtocolReader>)
  
  
negative.code:         [for i in relatedStructs -> i, fun rdr -> QExpr.Application(QExpr.Var taggedDeserializerVars.[i], rdr)]
          |> dict
  
        // TODO: need to handle required fields:
        //          add throwing "else" blocks to "if not ..."
        //          add bitarray writing within loop and checking after
  
        let reader = Quotations.Var("rdr", typeof<ITaggedProtocolReader>)
  
  