GHC2024 – community input

The point is context.

Before do was allowed to drift wander float, it also preceded monadic expressions. This was something you just got acquainted with (i.e. it may very have activated the same brain circuit which recognises other “leading keywords” like module , import, export, data, newtype, let and case).

So to then see do now being used in this other way is anomalous, much like this probably is:

anotherFunc a b c d fee fi fo fum =
    checkThat d fee if fo fum doSomething otherVal a c then theRest with b fi
                                                       else some more

…if not for you, then perhaps someone who’s begun to learn to use Haskell.