anchor.diff:         |> Seq.tryPick (fun (result, _, _) ->
             match result with
              | Ruled _ -> None
  -           | Value (_, value) -> Some (unbox<'a> value)))
  +           | Value value -> Some (unbox<'a> value)))
  
positive.code:     else
        match HashEqMap.tryFind ty objEnv with
         | Some o ->
           Seq.singleton (Value (ty, o), objEnv, tyEnv)
         | None ->
           let limit = limit - 1
           RuleSet.rulesFor rules ty
  
negative.code: 
                     match HashEqMap.tryFind ty objEnv with
                      | Some o ->
                        Seq.singleton (Value o, objEnv, tyEnv)
                      | None ->
                        let recTy = App (Def typedefof<Rec<_>>, [|ty|])
                        tryGenerate' limit rules objEnv tyEnv (ty::stack) recTy
                        |> Seq.tryPick (fun (result, objEnv, tyEnv) ->
                           match result with
                            | Ruled _ -> None
                            | Value recO ->
                              match recO with
                               | :? IRecObj as recO' ->
                                 let o = recO'.GetObj ()
                                 Some (Value o,
                                       objEnv
                                       |> HashEqMap.add recTy recO
                                       |> HashEqMap.add ty o,
  