anchor.diff:              ctor values |> fastUnbox<'Union>
   
           let cloner (c : CloneState) (u : 'Union) =
  -            let tag = tagReader.Invoke u
  +            let tag = tagReader u
               let ctor,reader,_,_,picklers = caseInfo.[tag]
               let values = reader u
               let values' = Array.zeroCreate<obj> values.Length
  
positive.code:         let cloner c t = clonerDele.Invoke(picklerss, c, t)
          let accepter v t = accepterDele.Invoke(picklerss, v, t)
  #else
          let tagReader = 
              if tagReaderMethod.IsSecurityCritical then
                  // we can't create a delegate, so we wrap a reflection call here
                  let f obj = tagReaderMethod.Invoke(obj, null) :?> int
                  new Func<'Union, int>(f)
              else
                  Delegate.CreateDelegate<Func<'Union,int>> tagReaderMethod
  
          let caseInfo =
              ucis
  
negative.code:                 ctor, reader, fields, tags, picklers)
  
          let writer (w : WriteState) (_ : string) (u : 'Union) =
              let tag = tagReader u
              tagSerializer.WriteTag(w.Formatter, tag)
              let _,reader,_,tags,picklers = caseInfo.[tag]
              let values = reader u
  