Код на haskell компилируется на лексах а не на ghc

Как говорится в вопросе, у меня есть некоторые, которые компилируются в лексах, но не компилируются с использованием ghc --make filename.hs

Код:

module Main (
    main
) where

pair a b = (Pair (a, b))

newtype Pair a b = Pair (a,b)  deriving (Eq,Show)

instance (Num a,Num b) => Num (Pair a b) where
   Pair (a,b) + Pair (c,d) = Pair (a+c,b+d)
   Pair (a,b) * Pair (c,d) = Pair (a*c,b*d)
   Pair (a,b) - Pair (c,d) = Pair (a-c,b-d)
   abs    (Pair (a,b)) = Pair (abs a,    abs b) 
   signum (Pair (a,b)) = Pair (signum a, signum b) 
   fromInteger i = Pair (fromInteger i, fromInteger i)

main = do   
            a <- return (pair 1 3)   
            print a
            print "haha"  
            print 3.2  
            print [3,4,3]  

Есть ли вариант, который мне нужно вызвать, чтобы заставить его работать с ghc --make?

Отказ от ответственности: я не сделал пару нового типа.

Редактировать:

Когда используешь ghc --make Bignumber.hs (Bignumber.hs - это имя файла)

[1 of 1] Compiling Main             ( BigNumber.hs, BigNumber.o )

BigNumber.hs:20:13: parse error on input `print'

1 ответ

Решение

Проверьте свой отступ: может быть, вы смешиваете табуляции и пробелы таким образом, что ghc интерпретирует иначе, чем leksah? Я не вижу другого объяснения ошибки разбора в print,

Другие вопросы по тегам