         # A×A←2 5 <=> 4 25
         render(node[2]).concat renderLHS node[1]
       when 'symbol'
-        # radius ← 3
-        # ... get_circumference ← {2×○radius}
-        # ... get_surface ← {○radius*2}
-        # ...
-        # ... before ← 0.01× ⌊ 100× radius circumference surface
-        # ... radius ← radius + 1
-        # ... after  ← 0.01× ⌊ 100× radius circumference surface
-        # ...
-        # ... before after
-        # ... <=> (3 18.84 28.27)(4 25.13 50.26)
+        # r←3 ⋄ get_c←{2×○r} ⋄ get_S←{○r*2}
+        # ... before←.01×⌊100×r c S
+        # ... r←r+1
+        # ... after←.01×⌊100×r c S
+        # ... before after <=> (3 18.84 28.27)(4 25.13 50.26)
         name = node[1]
         {vars} = node.scopeNode
         if (v = vars["get_#{name}"])?.type is 'F'

compileAST = (ast, opts = {}) ->
  ast.scopeDepth = 0
  ast.nSlots = if prelude then prelude.ast.nSlots else 0
  ast.vars = if prelude then ast.vars = Object.create prelude.ast.vars else {}
  do ->
    opts.ctx ?= Object.create vocabulary
    for k, v of opts.ctx when not ast.vars[k]

        when 'symbol'
          name = node[1]
          if (v = vars["get_#{name}"])?.type is 'F'
            type: 'X'
          else
            vars[name] or err node, "Symbol '#{name}' is referenced before assignment."
        when 'lambda'
