anchor.diff:  
           match request with
           | Request.SymProof -> phase symproof Response.SymProof
  +        | Request.Proof    -> phase (symproof >> proof approx) Response.Proof
           | Request.HSF      -> phase (filterIndefinite >> hsf) Response.HSF
           | Request.Z3 rq    -> phase (maybeApprox >> filterDefinite >> z3 reals rq) Response.Z3
           | Request.MuZ3 rq  -> phase (filterIndefinite >> muz3 reals rq) Response.MuZ3
  
positive.code: 
  /// Shorthand for the symbolic proof output stage.
  let symproof = bind (Core.Instantiate.Phase.run >> mapMessages Error.ModelFilterError)
  
  /// Shorthand for the HSF stage.
  let hsf = bind (Backends.Horn.hsfModel >> mapMessages Error.HSF)
  
negative.code:     | TermOptimise
      /// Output a fully-instantiated proof with symbols.
      | SymProof
      /// Output a fully-instantiated proof without symbols.
      | Proof
      /// Run the Z3 backend, with the given request.
      | Z3 of Backends.Z3.Types.Request
      /// Run the MuZ3 backend (experimental), with the given request.
  