   terms = _terms call
   if terms.length is 1
     malformed ctx, call, 'Missing an argument (for now)'
-    terms = join terms, [tea: toConstrained ctx.freshTypeVariable star]
+    terms = join terms, [tea: toConstrained (markOrigin (ctx.freshTypeVariable star), call)]
   call.tea = callInfer ctx, (_operator call), terms
 
 callInfer = (ctx, operator, terms) ->

          call.tea =
            if body
              new Constrained (join body.tea.constraints, deferredConstraints),
                typeFn paramTypeVars..., body.tea?.type
            else
              freshInstance ctx, explicitType
          # """λ#{paramNames.length}(function (#{listOf paramNames}) {

retrieve = (expression, newForm) ->
  expression.tea = newForm.tea
  expression.malformed = newForm.malformed
  if newForm.tea?.type.origin is newForm
    markOrigin newForm.tea.type, expression

filterAst = (test, expression) ->
  join (filter test, [expression]),
