Haskell Twitch库未按预期工作

Haskell Twitch库未按预期工作,haskell,file-watcher,program-flow,Haskell,File Watcher,Program Flow,我在图书馆玩: {-#语言重载字符串} {-#语言模板haskell} 模块主要在哪里 输入抽搐 导入数据。默认值 进口海龟。序曲 进口里约 main::IO() main=do 打印“嗨” let p=“C:\\Users\\unicorn\\programming\\listenerDir” 打印“之前” liftIO$runWithConfig p((\c->c{dirs=[p]})def)$do--已标记 “*.csv”|>\f->print f--已标记 打印“此处” 返回() 当我

我在图书馆玩:

{-#语言重载字符串}
{-#语言模板haskell}
模块主要在哪里
输入抽搐
导入数据。默认值
进口海龟。序曲
进口里约
main::IO()
main=do
打印“嗨”
let p=“C:\\Users\\unicorn\\programming\\listenerDir”
打印“之前”
liftIO$runWithConfig p((\c->c{dirs=[p]})def)$do--已标记
“*.csv”|>\f->print f--已标记
打印“此处”
返回()
当我编译并运行上面的程序而不使用
liftIO…
(因此省略标记行)调用时,它运行良好并打印消息。(但是很明显,文件侦听器没有注册和运行,因此它不是理想的结果。)

然而,当编译并按原样运行时,它什么也不做,甚至不打印
hi
之前的
。你知道为什么会这样吗

我试着模仿图书馆的例子,但我不明白为什么它会挂起来


更新:

显然,这与我为def配置所做的dirs更换有关

更新:

我也尝试过以下方法:

{-#语言重载字符串}
{-#语言模板haskell}
模块主要在哪里
输入抽搐
导入数据。默认值
进口海龟。序曲
进口里约
导入System.IO不安全
导入System.FilePath.Windows
main::IO()
main=do
让p=“C:\\”“用户”“独角兽”“编程”“simpleUID”“库应用程序设置”“kofax代客”“测试目录”
ops=选项LogToStOut Nothing(仅p)False DebounceDefault 0 300 False
打印“开始”
打印p
DefaultMain和ops$do选项
“*.csv”>\f->print f
同样的结果

defaultmain with options
也应将内容打印到标准输出;但那也不会发生

仅供参考:我问了这个问题,但没有得到答案,所以我怀疑一个更大的问题可能不仅仅是我对图书馆不熟悉,所以把它贴在这里

更新: 这是第二个代码的
cabal run
的完整输出:

unicorn@LAPTOP~/programming/haskell/listenerTest
$cabal run
建设概况:-w ghc-8.10.1-O1
为此,将构建以下内容(使用-v了解更多详细信息):
-listenerTest-0.1.0.0(exe:listenerTest)(文件Main.hs已更改)
正在预处理listenerTest-0.1.0.0的可执行文件“listenerTest”。。
正在为listenerTest-0.1.0.0生成可执行文件“listenerTest”。。
[1/1]编译主目录
(Main.hs,C:\Users\unicorn\programming\haskell\listenerTest\dist newstyle
\build\x86\U 64-windows\ghc-8.10.1\listenerTest-0.1.0.0\x\listenerTest\build
\listenerTest\listenerTest tmp\Main.o)
链接C:\Users\unicorn\programming\haskell\listenerTest\dist newstyle\build
\x86\u 64-windows\ghc-8.10.1\listenerTest-0.1.0.0\x\listenerTest\build
\listenerTest\listenerTest.exe。。。
unicorn@LAPTOP~/programming/haskell/listenerTest
$

之后,我不得不按住Ctrl+c键,然后也终止了任务

我这里遗漏了一些东西。如果运行时没有
liftIO
工作正常。。。那有什么问题吗?对不起,我可能写错了;我更新了问题,更好地描述了这一部分。在没有liftIO的情况下运行意味着文件侦听器没有注册,因此没有运行;那只是印刷的声明而已。。。我看不出这个问题。我是一名linux用户,我想知道类似windows的路径(带\\)是否与此问题有关。您能否尝试导入
System.FilePath.Windows
并写入
p=“C:\\”用户“unicorn”…
?可能不是问题,但只是以防万一(如果你确信路径是正确的,就不要这样做),我也怀疑这一点;我先尝试另一种方法;现在使用您推荐的
文件系统
库方法;不幸的是,我得到了同样的结果;-程序开始运行但什么也不做,当我退出它时,我还必须在任务运行时终止它;看来有些事情已经开始了,但我无法理解,我错过了一些东西。如果运行时没有
liftIO
工作正常。。。那有什么问题吗?对不起,我可能写错了;我更新了问题,更好地描述了这一部分。在没有liftIO的情况下运行意味着文件侦听器没有注册,因此没有运行;那只是印刷的声明而已。。。我看不出这个问题。我是一名linux用户,我想知道类似windows的路径(带\\)是否与此问题有关。您能否尝试导入
System.FilePath.Windows
并写入
p=“C:\\”用户“unicorn”…
?可能不是问题,但只是以防万一(如果你确信路径是正确的,就不要这样做),我也怀疑这一点;我先尝试另一种方法;现在使用您推荐的
文件系统
库方法;不幸的是,我得到了同样的结果;-程序开始运行但什么也不做,当我退出它时,我还必须在任务运行时终止它;看来有些事情已经开始了,但我无法理解