equal
deleted
inserted
replaced
69 | alternative _ NONE (y as SOME _) = y |
69 | alternative _ NONE (y as SOME _) = y |
70 | alternative _ NONE NONE = NONE |
70 | alternative _ NONE NONE = NONE |
71 |
71 |
72 fun max_outcome outcomes = |
72 fun max_outcome outcomes = |
73 let |
73 let |
74 val result = find_first (fn (SH_Some _, _) => true | _ => false) outcomes |
74 val some = find_first (fn (SH_Some _, _) => true | _ => false) outcomes |
75 val unknown = find_first (fn (SH_Unknown, _) => true | _ => false) outcomes |
75 val unknown = find_first (fn (SH_Unknown, _) => true | _ => false) outcomes |
76 val timeout = find_first (fn (SH_Timeout, _) => true | _ => false) outcomes |
76 val timeout = find_first (fn (SH_Timeout, _) => true | _ => false) outcomes |
77 val none = find_first (fn (SH_None, _) => true | _ => false) outcomes |
77 val none = find_first (fn (SH_None, _) => true | _ => false) outcomes |
78 in |
78 in |
79 result |
79 some |
80 |> alternative snd unknown |
80 |> alternative snd unknown |
81 |> alternative snd timeout |
81 |> alternative snd timeout |
82 |> alternative snd none |
82 |> alternative snd none |
83 |> the_default (SH_Unknown, "") |
83 |> the_default (SH_Unknown, "") |
84 end |
84 end |