anchor.diff:                   else id)
   
           match request with
  +        | Request.Proof   -> phase proof 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:     | Semantics
      /// Stop at term optimisation.
      | TermOptimise
      /// Run the Z3 backend, with the given request.
      | Z3 of Backends.Z3.Types.Request
      /// Run the MuZ3 backend (experimental), with the given request.
  
negative.code: /// case and failure messages.
  let printResult pOk pBad =
      either (printOk pOk pBad) (printErr pBad)
  
  /// Shorthand for the proof-output stage.
  let proof = bind (Core.Instantiate.Phase.run >> mapMessages Error.ModelFilterError)
  
  /// Shorthand for the HSF stage.
  let hsf = bind (Backends.Horn.hsfModel >> mapMessages Error.HSF)
  