   ]
 
 builtInDefinitions = ->
-  newMapWith 'True', (type: (quantifyAll toConstrained boolType), arity: []),
+  definitions = newMapWith 'True', (type: (quantifyAll toConstrained boolType), arity: []),
       'False', (type: (quantifyAll toConstrained boolType), arity: [])
       '==', (
         type: (quantifyAll toConstrained (typeFn (atomicType 'a', star), (atomicType 'a', star), boolType)),

  definitions = (join (importImplicit ctx), (topLevel ctx, form))
  shouldBeExported = (name, declaration) ->
    # Exporting all to allow for private members to be imported by submodules
    not declaration.virtual and declaration.final# and declaration.exported
  isExported = (name, exported) ->
    exported
  nonVirtual = filterMap shouldBeExported, ctx._scope()
  exported = concatSets (subtractSets nonVirtual, builtInDefinitions()),
    (filterMap isExported, ctx.submodules) # TODO: separate exporting namespaces according to the separation of namespaces
  exportList = map validIdentifier, (setToArray exported)
  exportDictionary = (jsDictionary exportList, exportList)
  {definitions, exportDictionary}

  macros = objectToMap ms
  for name, macro of values macros
    macro.final = yes
    macro.injected = yes
  macros


