anchor.diff:  
   namespace Infers
   
  +open System.Collections.Generic
  +open System.Reflection
   open System
  -open System.Reflection
   
   /////////////////////////////////////////////////////////////////////////
   
  
positive.code:      | o ->
         let t = o.GetType ()
         if hasInferenceRules t
            && HashEqMap.tryFind t ruleSet.rules |> Option.isNone
         then let rules = HashEqMap.add t (collectRules o |> Seq.toArray) ruleSet.rules
              {rules = rules
               tree = lazy (rules
                            |> HashEqMap.toSeq
                            |> Seq.collect (fun (_, rules) ->
                               rules
                               |> Seq.map (fun rule -> (rule.ReturnType, rule)))
                            |> TyTree.build
                            |> force)}
         else ruleSet
  
    let rulesFor (ruleSet: RuleSet) (desiredTy: Ty<_>) = seq {
  
negative.code:   let mutable private counter = 0L
  
    let newMapper () =
      let v2w = Dictionary<_, _> ()
      fun v ->
        match v2w.TryGetValue v with
         | (true, w) -> w
  