anchor.diff:      result :?> 'TDest list
   
   module RuntimeArray =
  -  let private typ = (typeof<_ list>).Assembly.GetType("Microsoft.FSharp.Collections.ArrayModule")
  +  let private typ = Runtime.getModule<_ list>("Microsoft.FSharp.Collections.ArrayModule")
   
     let private mapMethod = typ.GetMethod("Map")
     let map<'TDest> (f: obj -> obj (* 'a -> 'TDest *)) (xs: obj (* 'a[] *), elemType: Type (* typeof<'a>*)) =
  
positive.code:   let _, resultField = getTestResultFields typeArgs
    let result = FSharpValue.GetRecordField(test, resultField)
    let case, _ = FSharpValue.GetUnionFields(result, result.GetType())
    let res = mapIgnoreRuntime typeArgs.[0] test // this line means: let res = test |> TestResult.map ignore
    reporter.ReportProgress(res)
    if case.Tag = successCase.Tag then 0 else 1
  
  
negative.code:     let typ = FSharpType.MakeFunctionType(srcType, dstType)
      FSharpValue.MakeFunction(typ, body)
  
  module RuntimeTestResult =
    let private typ = Runtime.getModule<TestResult<_>>("Persimmon+TestResult")
  
    let private mapMethod = typ.GetMethod("map")
    let map<'TDest> (f: obj -> obj (* 'a -> 'TDest *)) (res: obj (* TestResult<'a> *), elemType: Type (* typeof<'a> *)) =
      let f = Runtime.lambda (elemType, typeof<'TDest>) f
      let result = Runtime.invoke mapMethod [| elemType; typeof<'TDest> |] [| f; res |]
      result :?> TestResult<'TDest>
  
  module RuntimeSeq =
    let private typ = Runtime.getModule<_ list>("Microsoft.FSharp.Collections.SeqModule")
  
    let private mapMethod = typ.GetMethod("Map")
    let map<'TDest> (f: obj -> obj (* 'a -> 'TDest *)) (xs: obj (* 'a seq *), elemType: Type (* typeof<'a> *)) =
  