     @value = new Literal @name
 
   compileNode: (o) ->
-    @value.compile o
+    @value.compile o, LVL_LIST
 
   toString: ->
     {name} = @


  constructor: (@name, tag) ->
    super()
    @prototype = if tag is 'prototype' then '.prototype' else ''
    @soakNode  = tag is 'soak'

  compileNode: (o) ->
    name = @name.compile o
    @prototype + if IS_STRING.test(name) then "[#{name}]" else ".#{name}"

  isComplex: NO


    return @compileChain o     if @isChainable() and @first.unwrap().isChainable()
    return @compileExistence o if @operator is '?'
    @first.tags.front = @tags.front
    "#{ @first.compile o, LVL_OP } #{@operator} #{ @second.compile o, LVL_OP }"

  # Mimic Python's chained comparisons when multiple comparison operators are
  # used sequentially. For example:
  #
  #     bin/coffee -e 'console.log 50 < 65 > 10'
  #     true
  compileChain: (o) ->
    [@first.second, shared] = @first.unwrap().second.cache o
    "#{ @first.compile o, LVL_OP } && #{ shared.compile o } #{@operator} #{ @second.compile o, LVL_OP }"

  compileExistence: (o) ->
    if @first.isComplex()
