anchor.diff:                              | None -> None
                               | Some gfd -> callGenericFormatter self gfd.ImplKind t None |> Some
                       else None
  +
  +                // if that fails, resolve F# core types
   
                   let result =
                       match result with
  
positive.code: 
              YParametric initial (fun (self : Type -> Formatter option cell) cont t ->
                  // cache resolution
                  let cachedResult = globalCache.TryFind t.AssemblyQualifiedName
  
                  // subtype resolution
                  let cachedResult =
                      match cachedResult with
                      | None when t.BaseType <> null ->
                          match (self t.BaseType).Value with
                          | Some fmt when fmt.ValidForSubtypes -> Some(Some fmt)
                          | _ -> None
                      | r -> r
  
                  if cachedResult.IsSome then cont cachedResult.Value else
  
                  // actual formatter resolution
  
                  let result =
                      if t.IsGenericType then
  
negative.code:                             mkFuncFormatter memberInfoFormatter t |> Some
                          else None
  
                  // finally, look for formatters in subtypes
  
                  let result =
                      match result with
                      | None when t.BaseType <> null ->
                          match (self t.BaseType).Value with
                          | Some fmt when fmt.ValidForSubtypes -> Some fmt
                          | _ -> None
                      | r -> r
                  
                  // commit result
                  cont result)
  
  
  