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