anchor.diff:          match altEmitterTable2.TryGetValue(mi) with
           | true, emitter -> emitter gen
           | _ ->
  -            let isReturnVoid = mi.ReturnType = typeof<System.Void>
  +            let isReturnVoid = mi.ReturnType = typeof<Void>
               if isTailCall && not isReturnVoid then
                 gen.Emit(OpCodes.Tailcall)
               gen.EmitCall(OpCodes.Call, mi, null)
  
positive.code:     dict.Add(getMethod <@ byte 1 @>, doNothing)
      dict.Add(getMethod <@ sbyte 1 @>, doNothing)
      dict.Add(getMethod <@ char 1 @>, doNothing)
      dict.Add(getMethod <@ decimal 1 @>, emitCall (getMethod <@ System.Convert.ToDecimal(1) @>))
      dict.Add(getMethod <@ float 1 @>, emitOneOpCode OpCodes.Conv_R8)
      dict.Add(getMethod <@ float32 1 @>, emitOneOpCode OpCodes.Conv_R4)
      dict.Add(getMethod <@ int 1 @>, doNothing)
  
negative.code:   let emitTwoOpCodes (opcode1, opcode2) (gen: ILGenerator) = gen.Emit(opcode1); gen.Emit(opcode2)
  
    let emitOpCodeWithInt opcode (value: int) (gen: ILGenerator) = gen.Emit(opcode, value)
    let emitOpCodeWithType opcode (value: Type) (gen: ILGenerator) = gen.Emit(opcode, value)
  
    let emitCall mi (gen: ILGenerator) = gen.EmitCall(OpCodes.Call, mi, null)
    let emitPropGet (pi: PropertyInfo) (gen: ILGenerator) = emitCall pi.GetMethod gen
  
    let private (|>>) emit1 emit2 = (fun (gen: ILGenerator) -> emit1 gen; emit2 gen)
  
    let emitStrToFloat (mi: MethodInfo) =
      emitOpCodeWithInt OpCodes.Ldc_I4 (int NumberStyles.Float)
      |>> emitPropGet (getProperty <@ CultureInfo.InvariantCulture @>)
      |>> emitOpCodeWithType OpCodes.Unbox_Any typeof<IFormatProvider>
      |>> emitCall mi
  
    let private altEmitterTable1 =
      let dict = Dictionary<MethodInfo, (ILGenerator -> unit)>(identityEqualityComparer)
  