anchor.diff:           handle_info/2,
            terminate/2,
            code_change/3]).
  -
  -%% api
  --export([evaluate/1]).
   
   -record(state, {context}).
   
  
positive.code: init([]) ->
      {ok, #state{context = erl_eval:new_bindings()}}.
  
  handle_call({eval, String}, _From, State) ->
      {ok, Ts, _} = erl_scan:string(String),
      {ok, Expr} = erl_parse:parse_exprs(Ts),
  
negative.code:     lager:info("Evaluating: ~p", [String]),
      gen_server:call(?MODULE, {eval, String}).
  
  stop() ->
      lager:info("Stopping shell"),
      gen_server:call(?MODULE, stop).
  
  %%%===================================================================
  %%% gen_server callbacks
  %%%===================================================================
  