       if _notEmpty retainedConstraints
         ctx.extendSubstitution substituionFail "#{name}'s context is too weak, missing #{listOf (map printType, retainedConstraints)}"
   else
+    # log name, "constraints", (substituteList ctx.substitution, constraints)
     [deferredConstraints, retainedConstraints] = deferConstraints ctx,
       (substituteList ctx.substitution, constraints)
     # Finalizing type again after possibly added substitution when defer constraints

  allBoundTypeVariables: ->
    substituteVarNames this, concatSets (for scope in @scopes
      scope.boundTypeVariables)...

  isClassDefined: (name) ->
    !!@_classNamed name

            #throw new Error "Body not typed"
          call.tea =
            if body
              new Constrained (join body.tea.constraints, deferredConstraints),
                typeFn paramTypeVars..., body.tea?.type
            else
              freshInstance ctx, explicitType
