 
         visitLiteral: (exp) ->
                 if typeof exp.value is 'number'
-                        if not NumberType.is InferVisitor.getType exp
-                                @assignType exp, new NumberType
+                        @assignType exp, new NumberType
+                else if typeof exp.value is 'string'
+                        @assignType exp, new StringType
                 exp
 
         @getType: (exp) -> return exp._ejs_inferredtype
         getType: (exp) -> InferVisitor.getType exp
 
         assignType: (ast, ty) ->
-                console.warn "assigning type of #{ty}"
+                #console.warn "assigning type of #{ty}"
                 if not ast._ejs_inferredtype
                         # The ast node didn't have a type specified before
                         Object.defineProperty ast, "_ejs_inferredtype",


                @changed = true

class TypeInfer
        constructor: ->
                @defaultGlobalEnvironment = [

                                enumerable: true
                                configurable: true
                                writable: true
                        #console.warn "assigned type #{ast._ejs_inferredtype}"
                else if ast._ejs_inferredtype instanceof MultiType
                        # The ast node is already polymorphic, add the new type to the bunch
                        ast._ejs_inferredtype.addType ty
