
Hi Dennis,
Not sure if this qualifies in any category above, but I just searched for:
Monad m => m (m a) -> m a
And I couldn't find Control.Monad.join on any of the first 4 pages or so of results. If I search for join, of course, the first result is:
Control.Monad. join :: Monad m => m (m a) -> m a
Is this a bug, or simply a known limitation? If the latter, is there a workaround, in case I happen not to know the name of join?
Unfortunately its a known bug, and there are no workarounds. Removing the Monad m => part of the query will actually make it more likely to give back join, but is still not great. The problem is that when I wrote Hoogle 3 I didn't understand higher-kinded type classes, and as a result, Hoogle 3 does a particularly bad job on them. The next version has been designed from the beginning to handle them properly, so once that's finished, you'll have no more problems. Thanks Neil