         else
           nameCompile) ctx, atom, symbol
   if type
-    markOrigin type.type, atom # only for simple types
     atom.tea = type
   atom.id = id if id?
   atom.scope = ctx.currentScopeIndex()

    else
      malformed ctx, atom, 'Unrecognized character'
      ''
  type: toConstrained charType
  translation: translation
  pattern: literalPattern ctx, translation

stringCompile = (ctx, atom, symbol) ->
  type: toConstrained stringType
  translation: symbol
  pattern: literalPattern ctx, symbol


      "window.#{symbol['global.'.length...]}"
    else
      symbol
  type: toConstrained markOrigin jsType, atom
  pattern: precs: []

numericalCompile = (ctx, atom, symbol) ->
  translation = if symbol[0] is '~' then (jsUnary "-", symbol[1...]) else symbol
  type: toConstrained markOrigin numType, atom
  translation: translation
  pattern: literalPattern ctx, translation

regexCompile = (ctx, atom, symbol) ->
  type: toConstrained markOrigin regexType, atom
  translation: symbol
  pattern:
    if ctx.assignTo()
