首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘`MonadThrow`’不在范围内,从LTS 11.0开始

‘`MonadThrow`’不在范围内,从LTS 11.0开始
EN

Stack Overflow用户
提问于 2018-06-22 02:44:47
回答 1查看 132关注 0票数 1

我发现用

片段上的me$ stack install --resolver lts-11.0

代码语言:javascript
复制
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where

import ClassyPrelude
import Network.HTTP.Conduit (host)

hostnameFromUrl :: MonadThrow m => Text -> m Text
hostnameFromUrl url = do
    return $ decodeUtf8 $ host "helloworld.com"

与消息失败

代码语言:javascript
复制
/Users/me/.../temp/Main.hs:8:20: error:
    Not in scope: type constructor or class ‘MonadThrow’
  |
8 | hostnameFromUrl :: MonadThrow m => Text -> m Text
  |                    ^^^^^^^^^^

当使用任何lts >= 11.0时。对于lts <= 10.10没有引发错误。

这似乎很奇怪,因为这两个LTSs之间的相关包(exceptions-0.8.3) 不变

我有stack.yaml文件

代码语言:javascript
复制
resolver: lts-11.0
packages:
  - '.'
flags: {}
extra-package-dbs: []

temp.cabal文件

代码语言:javascript
复制
name:                temp
version:             0.0
build-type:          Simple
-- extra-source-files:
cabal-version:       >=1.10

library
  hs-source-dirs:      .
  exposed-modules:     Main
  ghc-options:         -Wall
  build-depends:       classy-prelude >= 1.0.0.2
                     , http-conduit >= 2.1
  default-language:    Haskell2010

请原谅具体的设置,我已经尝试使这尽可能容易复制。

任何洞察力都将不胜感激!谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-22 03:25:20

它不再从ClassyPrelude导出,您需要从Control.Monad.Catch导入它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50979942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档