sig
type ('input, 'output) case =
('input, 'output) Documented_match_statement.case = {
pattern : 'input list;
documentation : string;
value : 'output;
}
type ('input, 'output) t =
('input, 'output) Documented_match_statement.t = {
specific_cases : ('input, unit -> 'output) case list;
catchall_case :
[ `Unused of unit -> 'output
| `Used of ([ `Catchall ], 'input -> 'output) case ];
}
val map :
('input, 'output1) t -> f:('output1 -> 'output2) -> ('input, 'output2) t
val map_case :
('input, unit -> 'output1) case ->
f:('output1 -> 'output2) -> ('input, unit -> 'output2) case
val map_cases :
('input, unit -> 'output1) case list ->
f:('output1 -> 'output2) -> ('input, unit -> 'output2) case list
val map_pattern :
('input1, 'output) t ->
f1:('input1 -> 'input2) ->
f2:('input2 -> 'input1) -> ('input2, 'output) t
val prepend :
specific_cases:('input, unit -> 'output) case list ->
('input, 'output) t -> ('input, 'output) t
val match_ : ('input, 'output) t -> 'input -> 'output
val documentation :
('input, 'output) t ->
input_to_string:('input -> string) -> title:string -> string list
end