anchor.diff:      else replace asmMappings (v, getAssemblies v.Type) (fun toAsm ->
         if reversePass then
           let newVar = Var (v.Name, getType toAsm v.Type (replaceType asmMappings), v.IsMutable)
  -        // store the asmMappings as we'll have to revert them later
  +        // store the original var as we'll have to revert to it later
           varTable.Add(newVar, v)
           newVar
         else
  
positive.code: open Microsoft.FSharp.Reflection
  open ProviderImplementation.ProvidedTypes
  
  type AssemblyReplacer =
    abstract member ToRuntime : Type -> Type
    abstract member ToRuntime : Expr -> Expr
    abstract member ToDesignTime: Expr -> Expr
  
  [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  module private AssemblyReplacer =
  
    let private replace asmMappings (original, originalAsms) f =
      let toAsm = 
        asmMappings
  
negative.code:             |> Seq.toArray
            newT.MakeGenericType(typeArguments)
        else 
          getType (fixName t.FullName)
      if newT = null then
        failwithf "Type '%O' not found in '%s'" t asm.Location
      newT
  
    // there might be multiple assemblies involved in generic types
    let private getAssemblies t =
      let rec innerGetAssemblies (t:Type) = seq {
        yield t.Assembly
        if t.IsGenericType && not t.IsGenericTypeDefinition then
          for t in t.GetGenericArguments() do
            yield! innerGetAssemblies t
      }
      t |> innerGetAssemblies |> Seq.distinct |> Seq.toList
  
    let rec private replaceType asmMappings (t : Type) =    
      if t.GetType().Name = "ProvidedSymbolType" then t
  