Haskell web路由不同的返回类型
经历: 我们构建的函数的返回类型为Haskell web路由不同的返回类型,haskell,happstack,Haskell,Happstack,经历: 我们构建的函数的返回类型为ServerPart-response: homePage :: ServerPart Response 但是,在中,我们的函数将签名更改为以下内容: homePage :: RouteT Sitemap (ServerPartT IO) Response 我们以前不是有服务器部件,而不是服务器部件吗? 另外,是否有一种更简单的方法可以切换到web路由,而无需更改每个方法的类型签名?ServerPart仅定义为type ServerPart a=Server
ServerPart-response
:
homePage :: ServerPart Response
但是,在中,我们的函数将签名更改为以下内容:
homePage :: RouteT Sitemap (ServerPartT IO) Response
我们以前不是有服务器部件,而不是服务器部件吗?
另外,是否有一种更简单的方法可以切换到web路由,而无需更改每个方法的类型签名?
ServerPart
仅定义为type ServerPart a=ServerPartT IO a
。在hapstack 8中,我们可能会将其更改为type ServerPart=ServerPartT IO
,这意味着我们可以编写类似RouteT Sitemap ServerPart Response
的类型,但在此之前,我们必须直接使用ServerPartT
,因为类型同义词不能“部分应用”。但是,它们是相同的类型。也就是说,serverpartresponse
只是ServerPartT IO Response
的别名
另外,是否有更简单的方法切换到web路由,而不更改每个方法的类型签名
不是真的。我喜欢在早期为“处理程序”定义自己的类型,然后我可以更改它的定义。例如,type Handler=ServerPart Response
和homePage::Handler
,然后在添加web路由时,我只需重新定义Handlertype Handler=RouteT Sitemap(ServerPartT IO)Response
您的编辑器可能具有搜索和替换功能,例如在Vim中:
:%s/:: ServerPart Response/:: RouteT Sitemap (ServerPartT IO) Response/g
ServerPart
仅定义为type ServerPart a=ServerPartT IO a
。在hapstack 8中,我们可能会将其更改为type ServerPart=ServerPartT IO
,这意味着我们可以编写类似RouteT Sitemap ServerPart Response
的类型,但在此之前,我们必须直接使用ServerPartT
,因为类型同义词不能“部分应用”。但是,它们是相同的类型。也就是说,serverpartresponse
只是ServerPartT IO Response
的别名
另外,是否有更简单的方法切换到web路由,而不更改每个方法的类型签名
不是真的。我喜欢在早期为“处理程序”定义自己的类型,然后我可以更改它的定义。例如,type Handler=ServerPart Response
和homePage::Handler
,然后在添加web路由时,我只需重新定义Handlertype Handler=RouteT Sitemap(ServerPartT IO)Response
您的编辑器可能具有搜索和替换功能,例如在Vim中:
:%s/:: ServerPart Response/:: RouteT Sitemap (ServerPartT IO) Response/g