文件名与模块名不匹配

File name does not match module name

新手玩haskell stack scripting and turtle

如果我将 turtle.hs 重命名为 turtle.sh,它会执行它应该执行的操作。但是后来我没有 haskell.

的语法高亮显示

如果我将它重命名为 something-other.hs,它也可以工作。但是后来 Haskero (VSCode) 抱怨 import Turtle 行:Couldn't guess that module name. Does it exist?

我在这里缺少什么? 运行 在 git bash 上 Windows。

显然,您需要为脚本指定一个不同的名称,因为代码在其中运行的模块名称会自动派生自它,现在它将与导入的 Turtle 模块发生冲突。将其重命名为 turtlescript.hs 然后

#!/usr/bin/env stack
-- stack --resolver lts-11.2 script --package turtle

{-# LANGUAGE OverloadedStrings #-}

import Turtle

main :: IO ()
main = echo "Hello!"

对我有用。