anchor.diff:              il.Emit(OpCodes.Ldarg_0)
               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
  +        /// Generates Recorder.Invocations property getter
  +        let generateRecorderInvocationsPropertyGetter () =
  +            let mi = (typeof<IRecorder>.GetProperty("Invocations").GetGetMethod())
  +            let getter = defineMethod typeBuilder mi
  +            let il = getter.GetILGenerator()
  +            il.Emit(OpCodes.Ldarg_0)
  +            il.Emit(OpCodes.Ldfld, invocationsField)
  +            il.Emit(OpCodes.Ret)
  +        // Generate Recorder.Invocations property getter
  +        generateRecorderInvocationsPropertyGetter ()
           /// Method overloads grouped by type
           let groupedMethods = calls |> Seq.groupBy fst
           /// Method argument lookup
  
positive.code: open System.Reflection.Emit
  open Microsoft.FSharp.Reflection
  open Microsoft.FSharp.Linq.QuotationEvaluation // F# PowerPack dependency
  
  module internal CodeEmit =
      /// Boxed value
  
negative.code:                         let x = il.DeclareLocal(abstractMethod.ReturnType)
                          il.Emit(OpCodes.Ldloca_S, x.LocalIndex)
                          il.Emit(OpCodes.Initobj, abstractMethod.ReturnType)
                          il.Emit(OpCodes.Ldloc, x.LocalIndex)
                          il.Emit(OpCodes.Ret)
              if abstractType.IsInterface then
                  typeBuilder.DefineMethodOverride(methodBuilder, abstractMethod)
  