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

  """
  'g', 4

  # TODO: support matching with the same name
  #       to implement this we need the iife to take as arguments all variables
  #       with the same names, since JavaScript shadows it too strongly and

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

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