function nothing() {
return {
match: function(cases) { return cases.nothing(); }
};
}
function just(x) {
return {
match: function(cases) { return cases.just(x); }
};
}
just(1).match({
just: function(x) { return x + 1; }
nothing: function() { return 0; }
});