   "#{instanceName}_#{methodName}"
 
 findSuperClassInstances = (ctx, instanceTypes, classDefinition) ->
-  toConstraint = (superName) ->
-    new ClassConstraint superName, instanceTypes
-  superConstraints = map toConstraint, classDefinition.supers
+  superConstraints = substituteList instanceTypes.types, classDefinition.supers
   instanceDictFor ctx, constraint for constraint in superConstraints
 
 

          ctx.addClass name, classConstraint, superClasses, freshedDeclarations
          declareMethods ctx, classConstraint, freshedDeclarations

          translateDict name, (keysOfMap freshedDeclarations), superClasses
        else
          jsNoop()
    else
      jsNoop()

findClassType = (ctx, params, className, paramNames, methods) ->
  kinds = mapMap (-> undefined), (arrayToSet paramNames)

    else
      constraints = typeConstraintsCompile ctx, _terms constraintSeq

    superClasses = map (quantifyConstraintFor paramNames), constraints
    superClassNames = map (({className}) -> className), constraints

    # TODO: defer if not all declared to prevent cycles in classes
    #   allDeclared = (ctx.isClass c for c in superClasses)
