if_seq c ~t ~e is an alternate API for EDSL.if_then_else (when
?e is provided) or EDSL.if_then (otherwise) that assumes “then”
and “else” bodies to be lists for EDSL.seq construct.
Create a switch statement from a list of EDSL.case and optionally a
EDSL.default (the function raises an exception if there are more
than one default cases).
with_failwith f uses ! and EDSL.with_signal to call f
with a function that exits the flow of execution and displays
~message and returns ~return (a bit like Pervasives.failwith).