2017-02-06 2 views
0

이것은 정확히 동일하지 않은 stack ghci not loading up local modules? 의 질문과 유사합니다.스택 ghci가 로컬 모듈을로드하지 않지만 ghci가 수행합니다.

Main.hs 및 Shapes.hs 파일의 디렉토리가 있습니다. 여기서 Main.hs에는 Shapes 모듈에 대한 참조가 있습니다. 내가

ghci Main.hs

모든 것을 실행하면

잘 작동합니다. 버전 7.10입니다. 내가 실행하는 경우

는하지만, 버전 8,

stack ghci

:load Main.hs

에 내가 링크

:load Shapes.hs Main.hs

에 솔루션을 시도

[1 of 1] Compiling Main (Main.hs, interpreted)

Main.hs:3:1: error:

Failed to load interface for ‘Shapes’

It is not a module in the current program, or in any known package.

Failed, modules loaded: none.

오류를 얻을하지만 여전히하지 않습니다 작업.

How to avoid "‘main’ is not defined in module ‘Main’" when using syntastic

하지만했다 경우 Main.hs 파일에

main :: IO()

에 넣어 : 나는이 두 번째 문제에 대해 설명합니다 다음을 발견

[1 of 2] Compiling Shapes (Shapes.hs, interpreted)

[2 of 2] Compiling Main (Main.hs, interpreted)

Main.hs:1:1: error:

The IO action ‘main’ is not defined in module ‘Main’

Failed, modules loaded: Shapes.

오류를 얻을 , 나는 여전히 오류가 발생합니다. 추가 라인을 추가 할 경우 추가 라인을 추가 할 경우 끝에 두 라인을 추가하면 라인이 추가됩니다.

main = return()

하지만로드 한 후에는 메인이 종료되고 더 이상 메인의 함수에 액세스 할 수 없습니다. 다른 모듈을 가져올 때 IO 기능을 사용해야하는 이유가 표시되지 않습니다. 버전 8에서 IO를 사용하지 않고 로컬 모듈을로드하는 방법은 무엇입니까?

답변

0

내 문제가 수정되었습니다. Main.hs 상단의 상단에있는

module Main where

이라는 줄이 있습니다. 이제는 스택 ghci로로드하면 작동합니다.

:l Main.hs Shapes.hs