let process n =
  let t = (get_context n) in
    (fun a -> 
       let status = Context.add t a in
         match status with  (* Update state and install new name in symbol table *)
           | Context.Status.Ok(t') -> 
               s.current <- t';
               let n = save None in
                 Context.Status.Ok(n)
           | Context.Status.Valid -> Context.Status.Valid
           | Context.Status.Inconsistent -> Context.Status.Inconsistent)