 
 : (fuel-eval) ( lines -- )
     [ [ parse-lines ] with-compilation-unit call( -- ) ] curry
-    [ print-error ] recover ;
+    [ [ fuel-eval-error set-global ] [ print-error ] bi ] recover ;
 
 : (fuel-eval-usings) ( usings -- )
     [ [ use-vocab ] curry [ drop ] recover ] each

        bi
    ] unless ;

: fuel-forget-error ( -- ) f error set-global ;
: fuel-forget-result ( -- ) f fuel-eval-result set-global ;
: fuel-forget-output ( -- ) f fuel-eval-output set-global ;
: fuel-forget-status ( -- )
    fuel-forget-error fuel-forget-result fuel-forget-output ;

: fuel-send-retort ( -- )
    error get fuel-eval-result get-global fuel-eval-output get-global
    3array fuel-pprint flush nl "<~FUEL~>" write nl flush ;

: (fuel-begin-eval) ( -- )
    fuel-push-status fuel-forget-status ;


SYMBOL: fuel-status-stack
V{ } clone fuel-status-stack set-global

SYMBOL: fuel-eval-error
f fuel-eval-error set-global

SYMBOL: fuel-eval-result
f fuel-eval-result set-global
