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.