   compile_node: (o) ->
     "${@tab}throw ${@expression.compile(o)};"
 
+type ThrowNode, 'ThrowNode'
 statement ThrowNode
 children ThrowNode, 'expression'
 

    ref: new ValueNode literal utility 'bind'
    (new CallNode(ref, [@meth, @context, literal(@arguments(o))])).compile o

children CurryNode, 'meth', 'context', 'args'

#### ExtendsNode

    close:          if @object then '}}' else '}'
    "$set_result${source_part}for ($for_part) {\n$var_part$body\n$@tab$close$return_result"

type ForNode, 'ForNode'
statement ForNode
children ForNode, 'body', 'source', 'guard'

