anchor.diff:          if m.GetType() = typeof<ProvidedMethod> then m
           elif m.DeclaringType.FullName = "Microsoft.FSharp.Core.LanguagePrimitives+IntrinsicFunctions" then m // these methods don't really exist, so there's no need to replace them
           else replace asmMappings (m, m.DeclaringType.Assembly) (fun toAsm ->
  -                let t = getType toAsm m.DeclaringType.FullName            
  +                let t = getType toAsm m.DeclaringType (replaceType asmMappings)
                   let parameterTypes = 
                       m.GetParameters() 
                       |> Seq.map (fun p -> replaceType asmMappings p.ParameterType) 
  
positive.code:     let private replaceConstructor asmMappings (c : ConstructorInfo) =
          if c.GetType() = typeof<ProvidedConstructor> then c
          else replace asmMappings (c, c.DeclaringType.Assembly) (fun toAsm ->
              let t = getType toAsm c.DeclaringType.FullName            
              let parameterTypes = 
                  c.GetParameters() 
                  |> Seq.map (fun p -> replaceType asmMappings p.ParameterType) 
  
negative.code:         if v.Type.GetType() = typeof<ProvidedTypeDefinition> then v
          else replace asmMappings (v, v.Type.Assembly) (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
                  varTable.Add(newVar, v)
                  newVar
  