anchor.diff:          /// Field for method arguments 
           let argsField = typeBuilder.DefineField("_args", typeof<obj[][]>, fields)
           /// Field for invocation tracking
  -        let invocationsField = typeBuilder.DefineField("_invocations", typeof<System.Collections.Generic.List<obj[]>>, fields)
  +        let invocationsField = typeBuilder.DefineField("_invocations", typeof<Invocations>, fields)
           // Generate default constructor
           generateConstructor typeBuilder [||] (fun il -> ())
           // Set fields from constructor arguments
  
positive.code:             il.Emit(OpCodes.Ldarg_2)
              il.Emit(OpCodes.Stfld, argsField)
              il.Emit(OpCodes.Ldarg_0)
              il.Emit(OpCodes.Newobj, typeof<System.Collections.Generic.List<obj[]>>.GetConstructor([||]))
              il.Emit(OpCodes.Stfld, invocationsField)
          // Generate constructor overload
          generateConstructor typeBuilder [|typeof<obj[]>;typeof<obj[][]>|] setFields
  
negative.code:         // Add invocation to invocations list
          il.Emit(OpCodes.Ldarg_0)
          il.Emit(OpCodes.Ldfld, invocationsField)
          il.Emit(OpCodes.Call, typeof<MethodBase>.GetMethod("GetCurrentMethod"))
          il.Emit(OpCodes.Ldloc, local0)
          il.Emit(OpCodes.Newobj, typeof<Invocation>.GetConstructor([|typeof<MethodBase>;typeof<obj[]>|]))
          let invoke = typeof<System.Collections.Generic.List<obj[]>>.GetMethod("Add")
          il.Emit(OpCodes.Callvirt, invoke)
  
  