 # end of tests
 
 
-exports.compileTopLevel = compileTopLevel
-exports.compileModule = compileModule
+exports.compileModuleTopLevel = compileModuleTopLevel
+exports.compileModuleWithDependencies = compileModuleWithDependencies
 exports.compileExpression = compileExpression
+exports.parseTopLevel = parseTopLevel
+exports.parseExpression = parseExpression
 exports.expand = expandCall
 exports.findAvailableTypes = findAvailableTypes
 exports.findMatchingDefinitions = findMatchingDefinitions

__ = (fna, fnb) ->
  (x) -> fna fnb x

# end of Utils

# Unit tests
test = (testName, teaSource, result) ->

  lookupInMap compiledModules, name


compileModuleTopLevel = (source, moduleName = '@unnamed', requiredMap = newMap()) ->
  addToMap requiredMap, 'Prelude', yes # TODO: Hardcoded prelude dependency
  removeFromMap requiredMap, moduleName
  for requiredModuleName of values requiredMap
