         ctx.extendSubstitution substituionFail "#{name}'s context is too weak, missing #{listOf (map printType, retainedConstraints)}"
   else
     [deferredConstraints, retainedConstraints] = deferConstraints ctx,
-      ctx.allBoundTypeVariables(),
-      (findFree currentType),
       (substituteList ctx.substitution, constraints)
     # Finalizing type again after possibly added substitution when defer constraints
     currentType = substitute ctx.substitution, type
-    # log "assign type", name, (printType (addConstraints currentType, retainedConstraints)), (printType quantifyUnbound ctx, (addConstraints currentType, retainedConstraints))
+    # log "assign type", name, ctx.allBoundTypeVariables(), (printType (addConstraints currentType, retainedConstraints)), (printType quantifyUnbound ctx, (addConstraints currentType, retainedConstraints))
     ctx.assignType name,
       if polymorphic
         quantifyUnbound ctx, (addConstraints currentType, retainedConstraints)

    translateIr ctx, (irMethod type, name)
  else
    finalType = addConstraintsFrom ctx, {id, type}, substitute ctx.substitution, type
    additionalConstraints = filter ((c) -> not isAlreadyParametrized ctx, c), finalType.constraints
    classParams = dictsForConstraint ctx, additionalConstraints
    params = map validIdentifier, arity
    if classParams.length > 0
      (irFunctionTranslate ctx,

  """
  "(size (concat-suffix {1} (concat-map (fn [x] {{1}}) {1 2 3})))", 6

  'overloaded subfunctions 2'
  """
  id (fn [x] x)

