The precedence is chosen to be higher than '(:)', in order to allow:
alternatives default $ checkForA ?-> (\a -> f a) : checkForB ?-> (\b -> g b) : 
The operation is left associative in order to allow to write
checkForA ?-> f ?-> g
which is equivalent to
checkForA ?-> g . f
due to the functor law.