- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有类型
ActionT TL.Text (ReaderT T.Text IO)
我正在尝试为此创建一个 MonadReader 实例,这样我就不必提出询问,但总是得到
(All instance types must be of the form (T a1 ... an)
where a1 ... an are *distinct type variables*,
and each type variable appears at most once in the instance head.
Use -XFlexibleInstances if you want to disable this)
我尝试了很多实例类型,下面是一些实例类型,但它们总是出现上述错误
instance MonadReader T.Text (ActionT TL.Text (ReaderT T.Text IO))
instance MonadReader r (ActionT TL.Text (ReaderT r IO))
instance (ScottyError e, MonadReader r m) => MonadReader r (ActionT e (ReaderT r m))
我觉得我错过了实例的一些基本内容。我想我明白了FlexibleInstances
但我看不出这在这里如何适用。
任何有关实例类型的帮助将不胜感激,我想实现 ask
和local
我自己的主要目标是学习。
谢谢。
我让它与 FlexibleInstances, MultiParamTypeClasses, UndecidableInstances
一起工作和
instance (ScottyError e, Monad m, MonadReader r m) => MonadReader r (ActionT e m) where
ask = lift ask
仍在致力于本地化的实现。我还假设 UndecidableInstances
不好吗?
我认为我真正需要的是。
instance (ScottyError e, Monad m, MonadReader r m) => MonadReader r (ActionT e (ReaderT r m)) where
但我还是想不通local
最佳答案
正如您自己回答的那样,您需要 UndecidableInstances
来实现完全通用的 MonadReader
实例。这是一个必要的罪恶,你可以在所有实现此类通用 monad 类型类实例的库中看到它。
恐怕实现local
会是一个问题。如果你看the standard instances ,它们都使用某种特定于特定 monad 的映射函数。而且由于 ActiveT
似乎都没有导出这样的方法或其内部结构,因此它看起来不可行。
关于haskell - Scotty 的 ActionT 的 MonadReader 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23147892/
和: mailHandler = do name <- param "name" email <- param "email" renderSendMail $ forwardMail
我目前正在制作 Scotty API,但找不到任何 basicAuth 实现示例(Wai Middleware HttpAuth)。 具体来说,我想向我的某些端点(即以“admin”开头的端点)添加基
我收到一个 GET 请求并想发送一条文本消息作为对它的响应。我有以下代码但收到以下错误 {-# LANGUAGE OverloadedStrings #-} import Web.Scotty imp
我收到一个 GET 请求并想发送一条文本消息作为对它的响应。我有以下代码但收到以下错误 {-# LANGUAGE OverloadedStrings #-} import Web.Scotty imp
我有一个 Scotty/WAI 应用程序,其中一个端点发送了一个大的 Text从元素列表构建的输出。这是相关的代码: import Data.Text.Lazy as L import Dat
包括阅读器在内的数以万亿计的 monad 教程,当您阅读它时似乎一切都清楚了。但是当你真的需要写的时候,就另当别论了。 我从未使用过 Reader,只是在实践中从未使用过。因此,尽管我读过它,但我不知
post "/introduceAnIdea" $ do command >= 更改它? 最佳答案 post "/introduceAnIdea" $ jsonData >>= (j
假设我有一份静态文件,但它们没有扩展名。我想为所有从“some/”提供服务的标题设置标题“Content-Type:image/png”(第一条规则)。如何在这段代码中做到这一点? import Ne
我遇到了一个问题,我的 Scotty 应用程序似乎没有终止旧的 HTTP 请求线程。最终,在大量(10-20)个并发请求之后,我遇到了数据库连接太多的错误 libpq: failed (FATAL:
我正在尝试在 Haskell 中使用 Scotty,按照教程,我可以像这样路由 url: get "/hello/:name" $ do name name <> "!!")
我刚刚开始学习 Haskell,并且一直坚持如何在 Scotty 中处理异常。 我有下面的基本功能。它获取 JSON POST,将其转换为 Haskell 数据记录,从配置读取器获取 postgres
我正在尝试制作一个愚蠢的网络服务器,将数据存储为 State .我正在使用 Web.Scotty . I've used ReaderT before with scotty to access co
考虑最简单的 scotty 应用程序: {-# LANGUAGE OverloadedStrings #-} import Web.Scotty import Data.Monoid (mconcat
我正在尝试创建一个网站,该网站将通过 URL 路由获取信息,然后将此信息传递到 HDBC SQLITE3数据库。我已经弄清楚如何使用 Scotty 通过参数获取信息以及如何使用 HDBC 创建数据库。
我尝试对 Scotty 进行基准测试以测试网络 I/O 效率和整体吞吐量。 为此,我设置了两个用 Haskell 编写的本地服务器。一个什么都不做,只是充当 API 的一种。 相同的代码是 {-# L
我想研究一下使用 haskell 进行后端和 elm 进行前端的 Web 开发。所以我写了这两个简单的“hello world”代码代码片段 榆树: import Html exposing (..)
我正在尝试制作一个列出给定目录内容的网页,但我遇到了一个奇怪的问题:当我在 GHCi 中逐行运行代码时,代码会产生所需的输出,但是当它被执行时在正在运行的 Scotty 实例中,它会产生不同的(错误的
我正在尝试学习 Haskell 中的语句是如何工作的。我试图制作一个非常简单的程序,您可以在其中调用 REST 端点并执行系统命令(非常简单,例如“ls”) 问题在于在单个 do 语句中组合不同的操作
这是我的 scotty 应用程序,请注意我如何将请求记录到控制台: {-# LANGUAGE OverloadedStrings #-} import Web.Scotty import Networ
我目前从 Network.Wai.Middleware.RequestLogger 运行中间件 logStdoutDev,但它只记录路径和 Accept header (也可能是其他 header )
我是一名优秀的程序员,十分优秀!