首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Haskell语言语法应用于代码块(而不是整个模块)

将Haskell语言语法应用于代码块(而不是整个模块)
EN

Stack Overflow用户
提问于 2018-08-15 03:43:47
回答 1查看 92关注 0票数 5

在Haskell中,是否可以将语言杂注应用于代码块,而不是整个文件本身?

例如,我启用了-fwarn-monomorphism-restriction标志,但是有几个文件我确实想禁用这个标志,所以我在文件的顶部使用了{-# LANGUAGE NoMonomorphismRestriction #-}

但是,我不想将此编译指示应用于整个模块,而是仅将其应用于我认为此警告没有帮助的代码块。我现在能想到的唯一解决方案是将这段代码移到它自己的文件中,然后导入它

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-15 04:27:31

一般来说,没有办法做到这一点。

对于这个特定的编译指示,您可以通过为其提供类型签名来禁用对单个声明的单态限制。虽然我强烈建议给出一个完整的签名,但在某些情况下,出于某些原因,这可能是不可取的;在这种情况下,即使是一个充满漏洞的签名也是足够的,例如

代码语言:javascript
复制
{-# LANGUAGE PartialTypeSignatures #-}

x :: _ => _
x = (+)

将被推断为具有Num a => a -> a -> a类型而不是Integer -> Integer -> Integer类型。

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

https://stackoverflow.com/questions/51848747

复制
相关文章

相似问题

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