> What am I missing?
You can combine booleans by '||', but 'Just n <- x' doesn't result to a boolean.
You can use '<|>' from 'Control.Applicative' to get the desired behavoir.
f x y
| Just _ <- x <|> y = 1
| otherwise = 2
Greetings,
Daniel