     scope.boundTypeVariables = newSet()
     scope.classes = newMap()
     scope.typeNames = newMap()
+    scope.typeAliases = newMap()
     scope
 
   newLateScope: ->

  ast = (astFromSource "(#{source})", -1, -1)
  [expression] = _terms ast
  {js} = compileCtxAstToJs topLevelExpression, ctx, expression
  (attachPrintedTypes ctx, expression)
  js: library + immutable + (listOfLines map lookupJs, setToArray toInject) + js
  ast: ast

lookupJs = (moduleName) ->
  js = (lookupInMap compiledModules, moduleName)?.js

        else
          # Typing
          if body and not body.tea
            malformed body, 'Expression failed to type check'
            #throw new Error "Body not typed"
          call.tea =
            if body
              new Constrained body.tea.constraints,
                typeFn paramTypeVars..., body.tea?.type
            else
              freshInstance ctx, explicitType
          # """λ#{paramNames.length}(function (#{listOf paramNames}) {
