     [expression] = _terms ast
     {js} = compileCtxAstToJs topLevelExpression, ctx, expression
     (finalizeTypes ctx, expression)
-    js: library + immutable + (listOfLines map lookupJs, (reverse modules)) + '\n' + js
+    js: library + immutable + (listOfLines map lookupJs, (reverse modules)) + '\n;' + js
     ast: ast
     errors: checkTypes ctx
 

iife = (body) ->
  # """(function(){
  #     #{body}}())"""
  (jsCall (jsFunction
    params: []
    body: body), [])

varList = (varNames) ->
  # "var #{listOf varNames};"

  types: ctx._scope()
  subs: ctx.substitution.fails
  ast: ast
  compiled: library + immutable + compiledDefinitions.js + '\n;' + compiledExpression.js

typeEnumaration = (ctx) ->
  values mapMap _type, ctx._scope()
