       catch e
         throw new Error "Error when deferring #{name} #{e.message}"
       if _notEmpty retainedConstraints
-        ctx.extendSubstitution substituionFail "#{name}'s context is too weak, missing #{listOf (map printType, retainedConstraints)}"
+        ctx.extendSubstitution substitutionFail "#{name}'s context is too weak, missing #{listOf (map printType, retainedConstraints)}"
   else
     # log name, "constraints", (substituteList ctx.substitution, constraints)
     [deferredConstraints, retainedConstraints] = deferConstraints ctx,

    expression = constraintSeq
  compiledType = new Constrained constraints, typeCompile ctx, type
  if name = ctx.definitionName()
    declareExplicitlyTyped ctx, compiledType
  call.tea = compiledType
  assignCompile ctx, call, (termCompile ctx, expression)


  #   final: Bool

  isDeclared: (name) ->
    !!@_declaration name

  isFinallyDeclared: (name) ->
    (declaration = @_declaration name) and declaration.final

  isCurrentlyDeclared: (name) ->
    !!@_declarationInCurrentScope name

  isFinallyCurrentlyDeclared: (name) ->
    (declaration = @_declarationInCurrentScope name) and declaration.final

  isTyped: (name) ->
