anchor.diff:          failwithf "Method '%s' of type '%O' not found in '%s'" uci.Name t toAsm.Location
         Expr.Call (constructorMethod, exprs))
   
  +  let private replaceRecord asmMappings (t:Type) exprs =
  +    replaceLazy asmMappings (lazy (Expr.NewRecord (t, exprs)), getAssemblies t) (fun toAsm ->
  +      let t = getType toAsm t (replaceType asmMappings)
  +      let c = t.GetConstructors() |> Seq.exactlyOne
  +      if c = null then
  +        failwithf "Constructor of record type '%O' not found in '%s'" t toAsm.Location
  +      Expr.NewObject (c, exprs))
  +
     let private replaceVar asmMappings (varTable: IDictionary<_,_>) reversePass (v: Var) =
       if v.Type.GetType() = typeof<ProvidedTypeDefinition> then v
       else replace asmMappings (v, getAssemblies v.Type) (fun toAsm ->
  
positive.code:     | NewUnionCase (uci, exprs) ->
          ru uci (List.map re exprs)
      | NewRecord (t, exprs) ->
          Expr.NewRecord (rt t, List.map re exprs)
      | NewTuple (exprs) ->
          Expr.NewTuple (List.map re exprs)
      | TupleGet (expr, i) ->
  
negative.code:     let rm = replaceMethod asmMappings
      let rc = replaceConstructor asmMappings
      let ru = replaceUnionCase asmMappings
      let rr = replaceRecord asmMappings
      let rv = replaceVar asmMappings varTable reversePass
      let re = replaceExpr asmMappings varTable reversePass
      
  