anchor.diff:                  | LocalVar -> Var v  
                   | FuncArg -> Var v
                   | ByRefArg -> 
  -                    let t = expr.Type
  +                    let t = getOrigType expr.Type
                       if t.HasTypeDefinition && t.TypeDefinition.IsByRef then Var v else GetRef (Var v)
                   | ThisArg -> This
           | P.Lambda _ ->
  
positive.code:     )
  
  let isByRef (t: FSharpType) =
      if t.IsGenericParameter then
          false
      else
      let t = getOrigType t
      if t.IsTupleType || t.IsFunctionType then false else
      t.HasTypeDefinition && t.TypeDefinition.IsByRef
  
  
negative.code:                 | _ -> parsefailf "Expected a union type"
              UnionCaseTag(tr expr, t)
          | P.NewRecord (typ, items) ->
              let td = (getOrigType typ).TypeDefinition 
              let t =
                  match sr.ReadType env.TParams typ with
                  | ConcreteType ct -> ct
  