     #   constraintsFromCanonicalType ctx, declaredType, finalType
     # else
       (reduceConstraints ctx, allConstraints).success
+  if not reducedConstraints
+    return jsNoop()
   if bare and _notEmpty reducedConstraints
     malformed ctx, expression, "Ambiguous class constraints: #{map safePrintType, reducedConstraints}"
     return "null";

      isDeclaredConstraint = (c) ->
        entailed = entail ctx, unifiedType.constraints, c
      notDeclared = filter (__ _not, isDeclaredConstraint), checked = (substituteList ctx.substitution, constraints)
      try
      {success, error} = deferConstraints ctx, notDeclared
      if error
        throw new Error "Error when deferring #{name} #{error}"
      [deferredConstraints, retainedConstraints] = success
      if _notEmpty retainedConstraints
        ctx.extendSubstitution substitutionFail "#{name}'s context is too weak, missing #{listOf (map printType, retainedConstraints)}"
  else
    # log name, "constraints", (substituteList ctx.substitution, constraints)
    {success, error} = deferConstraints ctx,

      ctx.extendSubstitution substitution
      return map ((c) -> substitute substitution, c), freshed.constraints
  null

instanceLookupFailed = (constraint) ->
  [first, second] = sortBasedOnOriginPosition constraint, constraint.types.types[0]
  substitutionFail
    message: "No instance found to satisfy #{safePrintType constraint}"
    conflicts: [first.origin, second.origin]

_names = (list) ->
  map _symbol, list
