Up

module Switch

: sig
#
type 'a shared =
# | Shared of 'a
# | Single of 'a
#
type 'a t_store = {
# act_get
: unit -> 'a array;
# act_get_shared
: unit -> 'a shared array;
# act_store
: 'a -> int;
# act_store_shared
: 'a -> int;
}
#
exception Not_simple
#
module type Stored = sig
#
type t
#
type key
#
val make_key : t -> key option
end
#
module Store : functor (A : Stored) -> sig
#
val mk_store : unit -> A.t t_store
end
#
module type S = sig
#
type primitive
#
val eqint : primitive
#
val neint : primitive
#
val leint : primitive
#
val ltint : primitive
#
val geint : primitive
#
val gtint : primitive
#
type act
#
val bind : act -> (act -> act) -> act
#
val make_const : int -> act
#
val make_offset : act -> int -> act
#
val make_prim : primitive -> act list -> act
#
val make_isout : act -> act -> act
#
val make_isin : act -> act -> act
#
val make_if : act -> act -> act -> act
#
val make_switch : act -> int array -> act array -> act
#
val make_catch : act -> int * (act -> act)
#
val make_exit : int -> act
end
#
module Make : functor (Arg : S) -> sig
#
val zyva : int * int -> Arg.act -> (int * int * int) array -> Arg.act t_store -> Arg.act
#
val test_sequence : Arg.act -> (int * int * int) array -> Arg.act t_store -> Arg.act
end
end