code: func defaultResolveTypeFn(p ResolveTypeParams, abstractType Abstract) *Object {
  	possibleTypes := p.Info.Schema.PossibleTypes(abstractType)
  	for _, possibleType := range possibleTypes {
  		if possibleType.IsTypeOf == nil {
  			continue
  		}
  		isTypeOfParams := IsTypeOfParams{
  			Value:   p.Value,
  			Info:    p.Info,
  			Context: p.Context,
  		}
  		if res := possibleType.IsTypeOf(isTypeOfParams); res {
  			return possibleType
  		}
  	}
  	return nil
  }
docs: // defaultResolveTypeFn If a resolveType function is not given, then a default resolve behavior is
  // used which tests each possible type for the abstract type by calling
  // isTypeOf for the object being coerced, returning the first type that matches.