Если вы настаиваете на символах TAB в вашем источнике, компилируются следующие компоненты:
module Main where
main =
let x = 1
y = 2
z = 3
in putStrLn $ "X = " ++ show x ++ "\nY = " ++ show y ++ "\nZ = " ++ show z
, где все начальные пробелы - это один или два TAB, а также пробелы между let
и x = 1
табуляцияПросмотр в режиме списка vi , чтобы сделать табуляции и концы строк явными:
module Main where<b>$</b>
<b>$</b>
main =<b>$</b>
<b>^I</b>let<b>^I</b>x = 1<b>$</b>
<b>^I^I</b>y = 2<b>$</b>
<b>^I^I</b>z = 3<b>$</b>
<b>^I</b>in putStrLn $ "X = " ++ show x ++ "\nY = " ++ show y ++ "\nZ = " ++ show z<b>$</b>
Ваша жизнь будет намного проще и ваш код красивее, если вы переключитесь на пробелы.