sig
  type mheap = Hoare | Typed of MemTyped.pointer
  type mvar = Raw | Var | Ref | Caveat
  type setup = {
    mvar : Factory.mvar;
    mheap : Factory.mheap;
    cint : Cint.model;
    cfloat : Cfloat.model;
  }
  type driver = LogicBuiltins.driver
  val ident : Factory.setup -> string
  val descr : Factory.setup -> string
  val computer : Factory.setup -> Factory.driver -> Generator.computer
  val parse : string list -> Factory.setup
end