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