sig   type mheap = Hoare | ZeroAlias | Typed of Wp.MemTyped.pointer   type mvar = Raw | Var | Ref | Caveat   type setup = {     mvar : Wp.Factory.mvar;     mheap : Wp.Factory.mheap;     cint : Wp.Cint.model;     cfloat : Wp.Cfloat.model;   }   type driver = Wp.LogicBuiltins.driver   val ident : Wp.Factory.setup -> string   val descr : Wp.Factory.setup -> string   val memory :     Wp.Factory.mheap -> Wp.Factory.mvar -> (module Wp.Memory.Model)   val configure : Wp.Factory.setup -> Wp.Factory.driver -> Wp.Model.tuning   val instance : Wp.Factory.setup -> Wp.Factory.driver -> Wp.Model.t   val default : Wp.Factory.setup   val parse :     ?default:Wp.Factory.setup ->     ?warning:(string -> unit) -> string list -> Wp.Factory.setup end