Is this pattern “Reasonable”?

```
let basicOp = (operation, a, b) => {
switch (operation) {
| '+' => a + b
| '-' => a - b
| '*' => a * b
| '/' => a / b
| _ => raise(Not_found) /* OK? */
}
};
```

With syntax highlighting:

Or would something like this be better? I sort of changed the assignment here.

```
type operator = Plus | Minus | Multiply | Divide;
let basicOp3 = (operation, a, b) => {
switch (operation) {
| Plus => a + b
| Minus => a - b
| Multiply => a * b
| Divide => a / b
}
};
Js.log(basicOp3(Plus, 4, 7) == 11);
Js.log(basicOp3(Minus, 15, 18) == -3);
Js.log(basicOp3(Multiply, 5, 5) == 25);
Js.log(basicOp3(Divide, 49, 7) == 7);
```

Thanks!