         if ft?.isFuture
           ft (error, result) ->
             if error
-              go
-                message: 'Error evaluating cell'
-                cause: error
+              go exception 'Error evaluating cell', error
             else
               if ft.render
                 ft.render result, (error, result) ->
                   if error
-                    go
-                      message: 'Error rendering cell output'
-                      cause: error
+                    go exception 'Error rendering cell output', error
                   else
                     go null, result 
+              else if ft.print
+                go null,
+                  text: ft.print result #TODO implement chrome dev tools style JSON inspector
+                  template: 'flow-raw'
               else
                 #XXX pick smarter renderers based on content
                 go null,


deepClone = (obj) ->
  JSON.parse JSON.stringify obj

Flow.Application = (_) ->
  _view = Flow.Repl _

  try
    go null, CoffeeScript.compile cs, bare: yes
  catch error
    go exception 'Error compiling coffee-script', error

parseJavascript = (js, go) ->
  try
    go null, esprima.parse js
  catch error
    go exception 'Error parsing javascript expression', error


identifyDeclarations = (node) ->
