equal
deleted
inserted
replaced
8 signature SAME = |
8 signature SAME = |
9 sig |
9 sig |
10 exception SAME |
10 exception SAME |
11 type ('a, 'b) function = 'a -> 'b (*exception SAME*) |
11 type ('a, 'b) function = 'a -> 'b (*exception SAME*) |
12 type 'a operation = ('a, 'a) function (*exception SAME*) |
12 type 'a operation = ('a, 'a) function (*exception SAME*) |
|
13 val same: ('a, 'b) function |
13 val commit: 'a operation -> 'a -> 'a |
14 val commit: 'a operation -> 'a -> 'a |
14 val function: ('a -> 'b option) -> ('a, 'b) function |
15 val function: ('a -> 'b option) -> ('a, 'b) function |
15 val capture: ('a, 'b) function -> 'a -> 'b option |
16 val capture: ('a, 'b) function -> 'a -> 'b option |
16 val map: 'a operation -> 'a list operation |
17 val map: 'a operation -> 'a list operation |
17 val map_option: ('a, 'b) function -> ('a option, 'b option) function |
18 val map_option: ('a, 'b) function -> ('a option, 'b option) function |
23 exception SAME; |
24 exception SAME; |
24 |
25 |
25 type ('a, 'b) function = 'a -> 'b; |
26 type ('a, 'b) function = 'a -> 'b; |
26 type 'a operation = ('a, 'a) function; |
27 type 'a operation = ('a, 'a) function; |
27 |
28 |
|
29 fun same _ = raise SAME; |
28 fun commit f x = f x handle SAME => x; |
30 fun commit f x = f x handle SAME => x; |
29 |
31 |
30 fun capture f x = SOME (f x) handle SAME => NONE; |
32 fun capture f x = SOME (f x) handle SAME => NONE; |
31 |
33 |
32 fun function f x = |
34 fun function f x = |