     else
       addToMap topScope.macros, name, macro
   for name, {type, arity, docs, source, isClass, virtual, final} of values definitions when (shouldImport name) and final
-    addToMap topScope, name, {type, arity, docs, source, isClass, virtual, final: shouldDeclare}
+    addToMap topScope, name, {arity, docs, source, isClass, virtual, final, type: (type if shouldDeclare), tempType: type}
   topScope.typeNames = concatMaps topScope.typeNames, typeNames
   topScope.classes = concatMaps topScope.classes, classes
   ctx.scopeIndex += compiledModule.savedScopes.length

    for arg in reqs
      if (isName arg)
        name = arg.symbol
        if ctx.isFinallyCurrentlyDeclared name
          malformed ctx, arg, "#{name} already declared"
        else if not ctx.isCurrentlyDeclared arg.symbol
          malformed ctx, arg, "#{name} was not declared in #{moduleName}"
        else
          ctx.declareAsFinal name, ctx.currentScopeIndex()
      else
        malformed ctx, arg, 'Name required'


  arity: (name) ->
    (@_declaration name)?.arity

  tempType: (name) ->
    (@_declaration name)?.tempType

  freshTypeVariable: (kind) ->
    if not kind
