This document, about the differences between Haskell and Purescript, says the following about the $ operator
GHC provides a special typing rule for the $ operator, so that the following natural application to the rank-2 runST function is well-typed:
runST $ do ...PureScript does not provide this rule, so it is necessary to either
omit the operator: runST do ... or use parentheses instead: runST (do ...)
Which typing rule is meant by this? And how does this impact the example of runST?