/
server_impl.ml
63 lines (44 loc) · 1.38 KB
/
server_impl.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
let rec lst_map f l =
match l with
| Protocol.Nil -> Protocol.Nil
| Protocol.Cons (a,l) -> Protocol.Cons (f a, lst_map f l)
module Sync =
struct
type 'a _r = 'a
let add1 i = i + 1
let add1_list l = List.map (fun i -> i + 1) l
let add1_pair (a, b) = (a + 1, b + 1)
let add1_r { Protocol.fst = f; snd = s; trd = t } =
{
Protocol.fst = f + 1;
snd = (match s with None -> None | Some s -> Some (s + 1));
trd = Array.map (fun e -> e + 1) t;
}
let add1_lst l = lst_map (fun i -> i + 1) l
let addN ?(n = 1) i = i + n
let maybe_raise flag =
if flag
then raise (Protocol.Bar 17)
let add1_string_list l = List.map (fun i -> string_of_int (int_of_string i + 1)) l
end
module Lwt =
struct
type 'a _r = 'a Lwt.t
open Lwt
let add1 i = return (i + 1)
let add1_list l = return (List.map (fun i -> i + 1) l)
let add1_pair (a, b) = return (a + 1, b + 1)
let add1_r { Protocol.fst = f; snd = s; trd = t } =
return {
Protocol.fst = f + 1;
snd = (match s with None -> None | Some s -> Some (s + 1));
trd = Array.map (fun e -> e + 1) t;
}
let add1_lst l = return (lst_map (fun i -> i + 1) l)
let addN ?(n=1) i = return (i + n)
let maybe_raise flag =
if flag
then fail (Protocol.Bar 17)
else return ()
let add1_string_list l = return (List.map (fun i -> string_of_int (int_of_string i + 1)) l)
end