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
  -        | _               -> fail (Error.Other "Internal")
  +        | Request.SymProof -> phase symproof Response.SymProof
  +        | 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
  +        | _                -> fail (Error.Other "Internal")
   
       //Build a phase with
       //  op as what to do
  
positive.code:                  ("flatten", Request.Flatten)
                   ("semantics", Request.Semantics)
                   ("termOptimise", Request.TermOptimise)
                   ("proof", Request.Proof)
                   ("reifyZ3", Request.Z3 Backends.Z3.Types.Request.Translate)
                   ("z3", Request.Z3 Backends.Z3.Types.Request.Combine)
                   ("sat", Request.Z3 Backends.Z3.Types.Request.Sat)
  
negative.code:     /// The result of term optimisation.
      | TermOptimise of UFModel<STerm<SMGView, SMVFunc>>
      /// Output a fully-instantiated proof.
      | SymProof of Model<SFTerm, unit>
      /// The result of Z3 backend processing.
      | Z3 of Backends.Z3.Types.Response
      /// The result of MuZ3 backend processing.
  