2014-02-09 3 views
1
import qualified Data.Sequence as Seq 

data Heap a = EmptyHype | Seq.Seq (Seq.Seq) Int deriving (Show, Read, Eq) 

Я получаю ошибку Qualified name in binding position: Seq.Seq я прочитал об этой проблеме, и, насколько я undestood я не могу использовать Seq.Seq но только Seq (Seq а), но я нужно квалифицировать его как Seq, потому что я не смогу использовать некоторые функции.Haskell, ошибка «Квалифицированное имя в связывании позиции»

Конечно, я, вероятно, ошибаюсь, поэтому я прошу здесь.

ответ

4

Вам потребуется имя конструктора для второй части ваших данных. Следующие компилирует:

data Heap a = EmptyHype 
      | Nonempty (Seq.Seq (Seq.Seq a)) Int 
    deriving (Show, Read, Eq) 

Вы также необходимы, чтобы полностью применить (второй) Seq.Seq, поэтому я сгруппировал как скобки, которые я сделал.

+0

Не может ли быть просто «а»? как '| Непустое (Seq.Seq (Seq.Seq a)) Int ', потому что, когда оно не пусто, оно имеет переменную Seq.Seq (Seq.Seq), а также переменную Int. Это проблема? – user3129475

+0

Конечно, теперь я отредактировал свой ответ, чтобы увидеть, что вы хотите. – crockeea

Смежные вопросы