Я пишу свой первый большой проект на Хаскеле, и я хотел бы разбить его на несколько файлов. До сих пор я написал два модуля, Parse
и Eval
. Я хотел бы иметь модуль Main
, который просто включает эти два модуля и определяет функцию main
. У меня есть файлы Main.hs
, Parse.hs
и Eval.hs
, и я импортирую их в Main
, но это происходит:
Prelude> :load "~/code/haskell/lisp/Main.hs"
[1 of 3] Compiling Eval ( Eval.hs, interpreted )
[2 of 3] Compiling Parse ( Parse.hs, interpreted )
[3 of 3] Compiling Main ( ~/code/haskell/lisp/Main.hs, interpreted )
Ok, modules loaded: Main, Parse, Eval.
*Main> parse parseExpr "" "#b101"
<interactive>:1:0: Not in scope: `parse'
Функция parse
происходит из библиотеки Parsec, которая импортируется в Parse.hs
. Что не так?