 
 Builders.block = Builders.script
 
-transform = (node, args...) ->
-  type = node.typeName()
-  fn   = Transformers[type]
-
-  fn.apply(node, args)  if fn
-
 # ## AST manipulation
 # Manipulation of the abstract syntax tree happens here. All these are done on
 # the `build()` step, done just before a node is passed onto `Builders`.

# `re()`  
# Works like `build()`, except it explicitly states which function should
# handle it. (essentially, *re*routing it to another builder)
re = (type, str, args...) ->
  Builders[type].apply str, args

# `body()`
# Works like `build()`, and is used for code blocks. It cleans up the returned
# code block by removing any extraneous spaces and such.
body = (item, opts={}) ->
  str = build(item, opts)
  str = blockTrim(str)

Builders =
  # `script`  
  # This is the main entry point.

  'script': (opts={}) ->
    c = new Code

