anchor.diff:              for(Name name in namedArguments.keys){
                 subsetConstraint(namedArguments[name], func.namedParameterTypes[name]);
               }
  -            if (returnIdent != null) subsetConstraintWithBind(func.returnType, returnIdent, genericTypeMap);
  +            if (returnIdent != null) subsetConstraint(func.returnType, returnIdent, binds: genericTypeMap);
             }
           }); 
       }
  
positive.code:       Map<Name, NamedElement> classElements = node.classElements;
        List<Name> inheritedElements = ListUtil.complement(node.classElements.keys, node.declaredElements.keys);
        for(Name n in inheritedElements){
          TypeIdentifier parentTypeIdent = new PropertyTypeIdentifier(new NominalType(node.extendsElement), n);
          TypeIdentifier thisTypeIdent = new PropertyTypeIdentifier(new NominalType(node), n);
          equalConstraint(parentTypeIdent, thisTypeIdent);
        }
      }
  
negative.code:     ParameterTypeIdentifiers paramIdents = new ParameterTypeIdentifiers.FromCallableElement(node, node.sourceElement.library, node.sourceElement);
      
      types.add(elementTypeIdent, new FunctionType.FromIdentifiers(returnIdent, paramIdents));
    }
    
    visitFunctionParameterElement(FunctionParameterElement node){
  