Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何将monad transformer添加到Spock应用程序中?_Haskell_Monads_Monad Transformers_Haskell Spock - Fatal编程技术网

Haskell 如何将monad transformer添加到Spock应用程序中?

Haskell 如何将monad transformer添加到Spock应用程序中?,haskell,monads,monad-transformers,haskell-spock,Haskell,Monads,Monad Transformers,Haskell Spock,我有一个基本的hello world Spock应用程序,下面是,但现在我想以某种方式将我自己的monad transformer,FooT,添加到Spock transformer堆栈中 我找到了,但它看起来好像在最新版本的spock中没有真正使用spockT。看起来现在有一个spock函数,它接受一个SpockCfg和一个SpockM,但是我没有看到任何接受一个m参数的函数,在这里我可以指定我的monad转换器。是否仍然可以以某种方式将FooT、StateT或任何其他monad转换器插入sp

我有一个基本的hello world Spock应用程序,下面是,但现在我想以某种方式将我自己的monad transformer,
FooT
,添加到Spock transformer堆栈中


我找到了,但它看起来好像在最新版本的spock中没有真正使用
spockT
。看起来现在有一个
spock
函数,它接受一个
SpockCfg
和一个
SpockM
,但是我没有看到任何接受一个
m
参数的函数,在这里我可以指定我的monad转换器。是否仍然可以以某种方式将
FooT
StateT
或任何其他monad转换器插入spock transformer堆栈?我误解了什么?谢谢大家!

您使用的是哪个版本的Spock?看一下,似乎
SpockM
只是
SpockCtxT
的类型别名,它是一个monad转换器,别名在内部使用。也许在这个堆栈中的某个地方添加
Statet
会起作用。我的版本是0.13.0.0。是的,看起来他们使用的转换器堆栈是SpockCtxT->WebStateT->ResourceT->IO,但是没有明显的方法在任何地方插入
m
。目前我的最佳猜测是,他们希望您返回到
spockT
函数以使用自定义monad,但随后您将失去
spock
SpockCfg
SpockM
的所有优秀功能。