module Documented_match_statement: Documented_match_statement
type ('input, 'output)
case = {
|
pattern : |
|
documentation : |
|
value : |
type ('input, 'output)
t = {
|
specific_cases : |
|
catchall_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
prepend ~specific_cases t
matches on specific_cases
before moving on to t
.
A common situation is representing let f t x = match x with | `A -> ... | `B -> ... | _ ->
which can be done by combining prepend
and map
:
let f' =
prepend ~specific_cases:{pattern = `A;...};{pattern = `B;...}
(map g' ~f:(fun h t -> ))
val match_ : ('input, 'output) t -> 'input -> 'output
match_ t
pulls out the underlying function of t
val documentation : ('input, 'output) t ->
input_to_string:('input -> string) -> title:string -> string list