Can you define an operator (***) in F#?

arrows, f#, functional-programming, operators

Solution

Yes, but you need to add spaces between the parentheses and the asterisks:

let ( *** ) x y = x * y

let z = 4 *** 5

Problem

I'm working on Arrows in F# and I wanted to create a `***` operator. I note, however, that `(***)`, the necessary way to express an operator in a function definition, overlaps with the F# block comment syntax. So how could you actually express this? I thought of maybe `.***.` but I think that will actually treat the dots as part of the operator, which I'd rather avoid.

Original source