         # ⊂{⍺⍺ ⍵⍵ ⍵}⌽'hello'           <=> ⊂'olleh'
         # ⊂{⍶⍶⍵}'hello'                <=> ⊂⊂'hello'
         # ⊂{⍶⍹⍵}⌽'hello'               <=> ⊂'olleh'
+        # +{⍵⍶⍵}10 20 30               <=> 20 40 60
+        # f←{⍵⍶⍵} ⋄ +f 10 20 30        <=> 20 40 60
+        # twice←{⍶⍶⍵} ⋄ *twice 2       <=> 1618.1779919126539
         code = render node[1]
         if node.isAdverb or node.isConjunction
           [LAM, code.length + 3, LAM, code.length].concat code, RET

                a[h.length - 3...] = [['dyadic'].concat a[h.length - 3...]]
                h[h.length - 3...] = [{type: 'X'}]
          # Replace `"expr"` node with `a[0]` in the AST
          node[0...] = a[0]
          h[0]
        else
          throw Error "Unrecognized node type, '#{node[0]}'"

    visitLHS = (node, rhsType) ->
      node.scopeNode = scopeNode
      switch node[0]
        when 'symbol'
          name = node[1]
          if name is '∇' then err node, 'Assignment to ∇ is not allowed.'
          if vars[name]
            if vars[name].type isnt rhsType
              err node, "Inconsistent usage of symbol '#{name}', it is assigned both nouns and verbs."
          else
            vars[name] =
              type: rhsType
              scopeDepth: scopeNode.scopeDepth
              slot: scopeNode.nSlots++
        when 'expr'
          rhsType is 'X' or err node, 'Strand assignment can be used only for nouns.'
          for child in node[1...] then visitLHS child, rhsType
        when 'index'
          rhsType is 'X' or err node, 'Index assignment can be used only for nouns.'
          visitLHS node[1], 'X'
          for c in node[2...] when c then visit c
        else
          err node, "Invalid LHS node type: #{JSON.stringify node[0]}"
      type: rhsType

    for node in scopeNode[1...] then visit node


      node.scopeNode = scopeNode
      switch node[0]
        when 'guard' then r = visit node[1]; visit node[2]; r
        when 'assign' then visitLHS node[1], visit node[2]
        when 'symbol'
          name = node[1]
          if (v = vars["get_#{name}"])?.type is 'F'
