Ссылка, которую вы предоставили, описывает предложение, которое звучит так, будто оно не является частью стандарта Haskell (хотя в ссылке упоминается, что оно реализовано в jhc, GHC и Hugs). Возможно, используемая вами версия компилятора Haskell или набор используемых вами флагов не допускают поведения необязательной точки с запятой, описанного в ссылке.
Попробуйте это:
import System.Environment
main = do
args <- getArgs
if (args !! 0) == "hello" then
print "hello"
else
print "goodbye"