anchor.diff:    | DescribeRepl -> run_describe_repl st
     | GenericError message -> run_generic_error st message
     | ProtocolViolation query -> run_protocol_violation st query
  +  | Segment c -> run_segment st c
     | VfsAdd (fname, contents) -> run_vfs_add st fname contents
     | Push pquery -> run_push st pquery
     | Pop -> run_pop st
  
positive.code: | Exit
  | DescribeProtocol
  | DescribeRepl
  | Pop
  | Push of push_query
  | VfsAdd of option<string> (* fname *) * string (* contents *)
  
negative.code:   ["autocomplete"; "autocomplete/context";
     "compute"; "compute/reify"; "compute/pure-subterms";
     "describe-protocol"; "describe-repl"; "exit";
     "lookup"; "lookup/context"; "lookup/documentation"; "lookup/definition";
     "peek"; "pop"; "push"; "search"; "segment";
     "vfs-add"]
  
  exception InvalidQuery of string
  type query_status = | QueryOK | QueryNOK | QueryViolatesProtocol
  