       deferrable: yes
       _defer: undefined
 
+  bareDefine: ->
+    @definePattern()
+
   defineNonDeferrablePattern: (pattern) ->
     definition = @definePattern pattern
     definition.deferrable = no

    !!@_scope().definition

  isAtDefinition: ->
    (definition = @_currentDefinition()) and definition.inside is 0

  isAtSimpleDefinition: ->
    @isAtDefinition() and @definitionName()

  isAtDeferrableDefinition: ->
    @isAtDefinition() and @_currentDefinition().deferrable

  # isInsideSimpleDefinition: ->
  #   (definition = @_currentDefinition())


compileCtxAstToJs = (compileFn, ctx, ast) ->
  ir = compileFn ctx, ast
  if ir
    jsIr = translateIr ctx, ir
    js = (if Array.isArray jsIr
        translateStatementsToJs
      else
        translateToJs) jsIr
  {ctx, ast, js}

astizeList = (source) ->
