       # Force context reduction
       inferredType = (substitute ctx.substitution, expression.tea)
       deferConstraints ctx,
-        inferredType.constraints
+        inferredType.constraints,
+        inferredType.type
     translatedExpression
 
 # Pushes the deferring to the parent scope

  """
  '3', 3



  # TODO: support matching with the same name
  #       to implement this we need the iife to take as arguments all variables

  findFreeInList map subbed, setToArray varNames

# Returns deferred and retained constraints
deferConstraints = (ctx, constraints, type) ->
  reducedConstraints = reduceConstraints ctx, constraints
  if not reducedConstraints.success
    return reducedConstraints
