anchor.diff:  /// <returns>
   ///     A function implementing the chosen MuZ3 backend process.
   /// </returns>
  -let run reals req =
  +let run (reals : bool) (req : Request)
  +  : Model<Term<MBoolExpr, GView<MarkedVar>, MVFunc>,
  +          FuncDefiner<BoolExpr<Var> option>>
  +    -> Response =
       use ctx = new Z3.Context()
       match req with
       | Request.Translate ->
  -        translate reals ctx
  +        Translator.translate reals ctx
           >> Response.Translate
       | Request.Fix ->
  -        translate reals ctx
  -        >> fix reals ctx
  +        Translator.translate reals ctx
  +        >> Run.fixgen reals ctx
           >> Response.Fix
       | Request.Sat ->
  -        translate reals ctx
  -        >> fix reals ctx
  -        >> sat
  +        Translator.translate reals ctx
  +        >> Run.fixgen reals ctx
  +        >> uncurry Run.run
           >> Response.Sat
  
positive.code:     ///     A sequence containing at most one pair of <c>string</c> and
      ///     Z3 <c>BoolExpr</c> representing the variable initialisation rule.
      /// </returns>
      let translateVariables reals ctx funcDecls svars =
          let vpars =
              svars
              |> Map.toList
  
negative.code:     /// <returns>
      ///     A function mapping types to sorts.
      /// </returns>
      let typeToSort (reals : bool) (ctx : Z3.Context) : Type -> Z3.Sort =
          function
          | Type.Int _ when reals -> ctx.MkRealSort () :> Z3.Sort
          | Type.Int _ -> ctx.MkIntSort () :> Z3.Sort
  